派生類與基類學習

前幾天忙着論文排版,學了半天LATEX。本科畢設用的模板,很順手。可是這次要自己寫排版的程序,就有點頭大,不過還好在參考書的幫助下完成了,但是還是有些不理想。編程就耽擱了。那天本來看了一會類模板之類的東西,但是筆記做到了本上,就沒有發博客。今天繼續。

今天上課C++課,學習了派生類的知識,主要是基類和派生類的概念還有實現方式。主要做的練習是虛函數,在基類中定義一個virtual關鍵字開頭的虛函數,然後再派生類中可以多次重新改寫這個函數,也可以直接調用基類的中該函數,可以很好地實現多態。

overriding改寫,重寫,主要意思是子類對父類函數的重新定義。

overloading,重載。這個就和派生基類都沒有關係,主要是函數之間的關係,但注意,不能用不同的返值類型來區別不同的重載函數。

練習題:員工類,經理類繼承自員工類。

#include<iostream>
using namespace std;


class employee {
string first_name,family_name;
short department;
public:
employee(const string& n,int d);
//virtual void print() const;
 void print() const;
employee& operator=(const employee&);
//employee(const emloyee&);
};
employee::employee(const string& n,int d):family_name(n),department(d){}




void employee::print() const {
cout<<family_name<<endl;
cout<<department<<endl;
}
class manager:public employee
{
//list<employee> group;
short level;
public:
manager(const string& n,int d,int level);
void print() const;
};
manager::manager(const string& n,int d,int lvl):employee(n,d),level(lvl) {}


void manager::print() const {
employee::print();
cout<<level<<endl;
}


int main()
{
employee e1("brown",1234);
manager m1("smith",1234,2);
e1.print();
m1.print();
return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章