1. 程式人生 > 其它 >C++在自定義型別中定義其他自定義型別的屬性初始化過程

C++在自定義型別中定義其他自定義型別的屬性初始化過程

#include <iostream> #include <string> using namespace std; class P { public: int id; string name;
public: P() { cout << "wu can p gou zao " << endl; }
P(int id, string name) { cout << "you can p gou zao" << endl; } };
class Person { public: int id2 = 202; int id1 = 201; P p;
public: Person() { cout << "person gou zao " << endl; } Person(int id2) : p(1, "qiumc") { cout << "person" << endl; } Person(int id2, int id1) {} Person(const Person& p) { cout << "const copy" << endl; } };
int main(int argc, char const* argv[]) {
// 在引數列表中顯示呼叫了自定義型別的屬性的建構函式P(int id, string name) Person p(100); // 對自定義型別的屬性,沒有進行顯示初始化,預設會呼叫自定義型別屬性的的預設建構函式 Person p2(1, 2); return 0; }