介绍
本文使用构造与析构输出字符串"ABCC"
源码
#include<iostream>
#include<string>
using namespace std;
class Test
{
char x;
public:
Test(char t) : x(t)
{
cout << 'A';
}
~Test()
{
cout << this->x << "CC" << endl;
}
};
int main()
{
//栈区对象
{
cout << "栈区对象:" << endl;
Test p1('B');
}
cout << endl;
//堆区对象
cout << "堆区对象:" << endl;
Test *p2 = new Test('B');
delete p2;
system("pause");
return 0;
}
运行结果
栈区对象:
ABCC
堆区对象:
ABCC
请按任意键继续. . .
笔记扩充
构造析构 的 构造顺序
源码
#include<iostream>
#include<string>
using namespace std;
class A
{
public:
A(){ cout << "A构造" << endl; }
~A(){ cout << "A析构" << endl; }
};
class B
{
A a;
public:
B(){ cout << "B构造" << endl; }
~B(){ cout << "B析构" << endl; }
};
class C
{
B b;
public:
C(){ cout << "C构造" << endl; }
~C(){ cout << "C析构" << endl; }
};
void main()
{
C *pc=new C;
cout << endl;
delete pc;
system("pause");
}
运行结果
A构造
B构造
C构造
C析构
B析构
A析构
请按任意键继续. . .

被折叠的 条评论
为什么被折叠?



