C++中派生类隐式调用与显式调用基类的构造函数
生活随笔
收集整理的這篇文章主要介紹了
C++中派生类隐式调用与显式调用基类的构造函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
通過派生類的構造函數調用基類的構造函數有兩種方式,隱式和顯式兩種。
所謂隱式方式就是在派生類的構造函數中不指定對應的基類的構造函數,這個時候調用的是基類的默認構造函數(即含有默認參數值或不帶參數的構造函數)。而所謂顯式方式,就是在派生類的構造函數中指定要調用的基類的構造函數,并將派生類構造函數的部分參數值傳遞給基類構造函數。注:除非基類有默認的構造函數,否則必須采用顯式調用方式
#include <iostream>
using namespace std;
class A
{
public:A(int x = 0,int y = 0){a = x;b = y;}
private:int a;int b;
};
//基類A有默認的構造函數,可以隱式調用
class B:public A
{
public:B(int z = 0){c = z;}
private:int c;
};
int main()
{B b1;return 0;
}
#include <iostream>
using namespace std;
class A
{
public:A(int x,int y){a = x;b = y;}
private:int a;int b;
};
//基類A沒有默認的構造函數,其現有的構造函數需要傳遞參數,通過
//派生類構造函數調用A構造函數時必須如下顯式調用
class B:public A
{
public:B(int x,int y,int z):A(x,y){c = z;}
private:int c;
};
int main()
{B b1(1,2,3);return 0;
}
?
總結
以上是生活随笔為你收集整理的C++中派生类隐式调用与显式调用基类的构造函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VS2015无法打开包括文件corecr
- 下一篇: C++引用与指针的不同