失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > C++中对象数组的构造函数和析构函数调用

C++中对象数组的构造函数和析构函数调用

时间:2018-07-17 06:18:36

相关推荐

C++中对象数组的构造函数和析构函数调用

C++的对象数组

顾名思义,即是存储对象的数组。比如有一个对象A,实例化为对象数组有如下两种方式:

A a[3]; //第一种方法,在栈空间中占用内存A *a = new A[3];//第二种方法,在堆空间中分配空间

对象数组调用构造函数及析构函数

例子1

class A {public:A() {cout << "A()" << endl; }~A() {cout << "~A()" << endl; }};int main(){A a[3];//定义了对象数组return 0;}

输出:

A()A()A()~A()~A()~A()

例子2

class A {public:A() {cout << "A()" << endl; }~A() {cout << "~A()" << endl; }};int main(){A *p=new A[3];return 0;}

输出:

A()A()A()

new操作是在堆空间申请堆内存,所以需要程序员手动释放,如果添加手动释放的代码,则会打印析构函数函数的调用

class A {public:A() {cout << "A()" << endl; }~A() {cout << "~A()" << endl; }};int main(){A *p=new A[3];delete []p;return 0;}

输出

A()A()A()~A()~A()~A()

如果觉得《C++中对象数组的构造函数和析构函数调用》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。