您的位置:首页 > 编程语言 > C语言/C++

C++ new 创建对象加不加括号的区别以及用new创建对象的特点

2016-03-14 23:24 357 查看
加不加括号的区别:http://blog.sina.com.cn/s/blog_7af11b490102vvkc.html

用new创建对象与不用new的区别:

#include <iostream>
using namespace std;
class A
{
private:
int n;
public:
A(int m):n(m)
{
}
~A(){}
};
int main()
{
A a(1);  //栈中分配
A b = A(1);  //栈中分配
A* c = new A(1);  //堆中分配
  delete c;
return 0;
}


第一种和第二种没什么区别,一个隐式调用,一个显式调用,两者都是在进程虚拟地址空间中的栈中分配内存,而第三种使用了new,在堆中分配了内存,而栈中内存的分配和释放是由系统管理,而堆中内存的分配和释放必须由程序员手动释放。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: