C++中类对象初始化问题

有个类A(有无参默认构造函数),然后main函数中,定义了一个类A的对象,代码是这样:A a=A();
请问:这是通过A()临时建立一个类对象然后赋给a,然后再释放这个临时对象,还是等价"A a();"?我在构造函数和析构函数中加了输出的调试语句,但却只显示出一次类A的构造和析构

 A a=A();

这样也是调用的构造函数,只是所谓的复制构造函数。它不会生成临时对象,再拷贝而是只有一次构造析构。

你改成
A a;
a=A();

这样试试

你加拷贝构造函数的A(const A& other)试试

这样可以生成一个对象,但是过程繁琐而且有隐性问题

在创建对象就初始化时,是调用深拷贝;相同对象之间赋值容易出现浅拷贝(这是不好的结果)。你的A()是创建无名对象,应该调用的是默认构造函数与默认析构函数,这是不会在屏幕输出的。
PS:说错了的地方请大家指出啊,谢谢。