C++11新特性學習筆記—繼承構造函數的使用

/*爲了避免透傳接口,在c++中使用using 關鍵字
如果派生類要使用基類的成員函數的話,可以通過使用using聲明來完成
*/
#include<iostream>
using namespace std;

class Base
{
public:
	Base();
	Base(int i) :m(i) {}
	int m;
	void f(double x) { cout << "base x = " << x << endl; }
};
class Derived :public Base
{
public :
	//注意,繼承構造函數只會初始化基類中的成員變量,對於子類中的,可以設置默認值
	//繼承構造函數的使用情景:基類中有大量不同的構造函數,大量成員變量,B繼承自A,B
	//僅僅添加了一個新方法,這種時候,不必在B中重複寫大量構造函數,使用繼承構造函數的方法即可
	using Base::Base;//繼承構造函數
	using Base::f;
	void f(int x){ cout << "derived x = " << x << endl; }
	virtual void calculate();
};

int main()
{
	Base b;
	b.f(4.5);
	Derived d;
	d.f(6.3);
}

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