77.初始化数据,如果类中有其他类,需要重写构造函数

 1 #include <iostream>
 2 #include <cstdlib>
 3 #include <string>
 4 using namespace std;
 5 
 6 //初始化数据的时候,如果类中引用其他类,需要重写构造函数,int也是类
 7 class myclass
 8 {
 9 public:
10     int x;
11     int y;
12 
13 public:
14     myclass(int a,int b) : x(a),y(b)
15     {
16 
17     }
18 };
19 
20 
21 union myu
22 {
23     string str1;
24     int a;
25     int b;
26     myu()
27     {
28         new(&str1)string;//调用构造函数
29     }
30     ~myu()
31     {
32         str1.~basic_string();//析构
33     }
34 };
35 
36 void main()
37 {
38     myu my;
39     my.str1 = "234";
40     cout << my.str1 << endl;
41     
42     myclass *p = new myclass[2]{ {1,2},{3,4} };
43     for (int i = 0; i < 2; i++)
44     {
45         cout << p[i].x << " " << p[i].y << endl;
46     }
47     cin.get();
48 }

 

posted @ 2018-03-15 22:25  喵小喵~  阅读(191)  评论(0编辑  收藏  举报