c++中,p = new A ; 究竟有没有实例化对象?

A * p;
p = new A ;
我觉得应该是有实例化对象,只是这个对象我们不知道名字而已,就好比return变量,复制副本,我们不知道他的名字。

也就是说 p = new A ;等同于 p = new A () ;

当然实例化了。对象名就是 A, 没有其它的“对象名”的说法,
你说的“对象名”,并不是对象的一部分,是你自已自行定义的一个普通属性而已。
许多语言有特殊对象:“控件”,并为它私下增加了“控件名”。追问

对象名就是 A,`````那是类名啊,这样不是重复了么

追答

说错了,对象名是 p,

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-07-18
当然实例化了

p = new A ;等同于 p = new A () ;
不一定等同
p = new A 调用默认构造函数
p = new A () 调用构造函数 不一定是默认的 比如 所有参数都带有默认参数 A(int i = 0)就可以这样调用
第2个回答  2013-07-18
编译器在处理new expresion时分两步,首先在堆上分配内存,工作由operator new完成(可以是默认的,也可以重载),内存分配成功后调用A的默认构造函数初始化。
如果这期间没有异常的话,那么对象便实例化了。当然,如你所说,它没有名字,但是new返回了它的地址。
相似回答
大家正在搜