關於C++構造函數一二
阿新 • • 發佈:2018-02-22
cti include eas stat body 一次 並且 ng- end
關於構造函數的調用順序:
1、繼承關系
2、從屬關系
3、static聲明的從屬關系
關於拷貝構造函數的聲明:
classname(const classname & rhs)
#include <iostream>
using namespace std;
class Component
{
public:
Component()
{
cout << "Component" << endl;
}
// 拷貝構造函數的定義。去掉&編譯只是,由於傳值型傳參是調用拷貝構造,而拷貝構造並未定義好
Component(const Component& rhs)
{}
};
class Host
{
private:
Component a;
public:
static Component sa; // static型成員屬性。僅包括聲明時不會調用構造函數
public:
Host()
{
cout << "Host" << endl;
}
};
Component Host::sa; // 包括此句時,此處才是定義。才會調用構造函數,並且先於main函數就已經調用構造函數。
void main()
{
Host obj;
}
打印結果:
Component
Component
Host
第一次Component是static的構造
關於C++構造函數一二