A *a = new A();
Run Code Online (Sandbox Code Playgroud)
这会创建指针还是对象?
我是一名c ++初学者,所以我想了解这种差异.
Pau*_*aul 44
两者:你创建了一个A(一个对象)的新实例,并创建了一个指向它的指针a.
您可以将其分为两个语句:
A *a; // Declare `a` of type: pointer to `A`
a = new A(); // create a new instance of `A` and
// assign the resulting pointer to `a`
Run Code Online (Sandbox Code Playgroud)
NPE*_*NPE 15
这会A在堆上创建一个类型的对象,并存储一个指向它的指针a(存储在堆栈中).
PS delete a当你完成它时不要忘记打电话,这样就A可以将其破坏并将其内存返回堆中.更好的是,变成a智能指针.
sta*_*ust 11
它创造了两者.
它A*在堆栈上创建类型对象,A在堆上创建类型对象.
相当于
A *a;
a = new A();
Run Code Online (Sandbox Code Playgroud)