|
@@ -0,0 +1,78 @@
|
|
|
+//4.2.7 类作为对象成员
|
|
|
+
|
|
|
+//C++类中的成员可以是另一个类的对象,我们称该成员为对象成员
|
|
|
+
|
|
|
+//例如:
|
|
|
+//class A {}
|
|
|
+//class B
|
|
|
+//{
|
|
|
+// A a;
|
|
|
+//}
|
|
|
+
|
|
|
+
|
|
|
+//B类中有对象A作为成员,A为对象成员
|
|
|
+//那么当创建B对象时,A与B的构造和析构的顺序是谁先谁后?
|
|
|
+
|
|
|
+#if(0)
|
|
|
+
|
|
|
+#include <iostream>
|
|
|
+
|
|
|
+class Phone
|
|
|
+{
|
|
|
+public:
|
|
|
+ Phone(std::string pName)
|
|
|
+ {
|
|
|
+ m_PName = pName;
|
|
|
+ std::cout << "Phone的构造函数的调用" << std::endl;
|
|
|
+ }
|
|
|
+ ~Phone()
|
|
|
+ {
|
|
|
+ std::cout << "Phone析构函数的调用" << std::endl;
|
|
|
+ }
|
|
|
+
|
|
|
+ std::string m_PName;
|
|
|
+
|
|
|
+};
|
|
|
+
|
|
|
+class Person
|
|
|
+{
|
|
|
+public:
|
|
|
+ Person(std::string name, std::string pName):m_Name(name),m_Phone(pName)
|
|
|
+ {
|
|
|
+ std::cout << "Person的构造函数的调用" << std::endl;
|
|
|
+ }
|
|
|
+ ~Person()
|
|
|
+ {
|
|
|
+
|
|
|
+ std::cout << "Person的析构函数调用" << std::endl;
|
|
|
+
|
|
|
+ }
|
|
|
+ //姓名
|
|
|
+ std::string m_Name;
|
|
|
+ //手机
|
|
|
+ Phone m_Phone;
|
|
|
+};
|
|
|
+
|
|
|
+//当其他类对象作为本类成员,构造是侯先构造类对象,再构造自身
|
|
|
+//析构的顺序?
|
|
|
+//析构数顺序与构造相反
|
|
|
+
|
|
|
+void test01()
|
|
|
+{
|
|
|
+
|
|
|
+ Person p("张三", "苹果MAX");
|
|
|
+
|
|
|
+ std::cout << p.m_Name << "拿着一个" << p.m_Phone.m_PName << std::endl;
|
|
|
+}
|
|
|
+
|
|
|
+int main()
|
|
|
+{
|
|
|
+ test01();
|
|
|
+
|
|
|
+ system("pause");
|
|
|
+
|
|
|
+ return 0;
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+#endif
|