首页 > 其他 > 详细

1-new对象与直接构建对象

时间:2018-05-08 20:37:25      阅读:181      评论:0      收藏:0      [点我收藏+]
#include <iostream>
using namespace std;

class A {
	public:
	A(){}
	A (int a){
		this->a = a;
	}
	public:
		int a;
	    int b;
}; 

int main(){
	A a = A(1); 		//创建的对象 
	A *b = new A(2); 	//创建的指针 
	A c = A(); 
	cout << a.a << endl;	
	cout << b->a << endl;
	return 0;
}

  

c++里面, 创建对象,  ClassName object(初始化参数);在Stack栈里面分配空间,自动释放。
或者用 ClassName object=new ClassNam();在heap堆里面分配空间,要手动释放。
当你不确定需要多大的时候用NEW
类里面用NEW实现多态, 有的时候解决类
接口也用NEW, 这个一下说不清楚
用NEW有一定内存泄露的风险, 可以考虑用
1:声明分配内存是在编译阶段进行的,new分配内存是在运行阶段进行的
2:声明被放在栈中,new被分配在堆中或自由存储区中
3:声明创建数组,在编译阶段是就为他分配内存。
new创建在运行阶段 需要创建时就创建,不需要创建时还可以在运行时选择数组长度,
这就是因为int i;cin>>i;int a[i];不成功的原因,因为a[i]要在编译阶段就分配好内存,但是i在运行时才能知道
int i;cin>>i;int * a=new int[i];这样可以,因为都是在运行阶段才进行。

1-new对象与直接构建对象

原文:https://www.cnblogs.com/zhumengdexiaobai/p/9010602.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!