1. 程式人生 > >關於C++構造函數一二

關於C++構造函數一二

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++構造函數一二