标签:长度 自动 ack 选择 size text tac return include
#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];这样可以,因为都是在运行阶段才进行。
标签:长度 自动 ack 选择 size text tac return include
原文地址:https://www.cnblogs.com/zhumengdexiaobai/p/9010602.html