C++ new 创建对象加不加括号的区别以及用new创建对象的特点
2016-03-14 23:24
357 查看
加不加括号的区别:http://blog.sina.com.cn/s/blog_7af11b490102vvkc.html
用new创建对象与不用new的区别:
第一种和第二种没什么区别,一个隐式调用,一个显式调用,两者都是在进程虚拟地址空间中的栈中分配内存,而第三种使用了new,在堆中分配了内存,而栈中内存的分配和释放是由系统管理,而堆中内存的分配和释放必须由程序员手动释放。
用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,在堆中分配了内存,而栈中内存的分配和释放是由系统管理,而堆中内存的分配和释放必须由程序员手动释放。
相关文章推荐
- C++:复制构造函数的应用
- C++学习之Pair
- c语言 圆周率代码
- C++对象引用和this指针用法
- c++上机报告(二)
- C语言小编程之不创建临时变量,交换两个数的值
- 宏的高级使用--##,__VA_ARGS__, __FILE__, __FUNCTION__等
- 第二次c++作业
- C++笔试
- 额。。。c++ sort()排序问题
- C语言中的技术陷阱
- C++11多线程之std::lock
- C++11多线程之std::lock_guard
- C++11多线程之std::mutex
- visual c++ 中的stdafx.h头文件的作用
- C++ 多线程并发控制——互斥锁 pthread_mutex
- C++的异常安全性
- C++编译期多态与运行期多态
- C++中引用(&)的用法和应用实例(相当经典!!!)
- Problem B: C语言习题 学生成绩输入和输出