读书人

相关构造函数的疑问

发布时间: 2012-10-25 10:58:58 作者: rapoo

有关构造函数的疑问
各位大侠,请教下为什么定义普通对象会自动调用其构造函数,而定义指针对象却没默认调用其构造函数呢?
例如定义类class A;
若定义A a后,会自动调用构造函数。
若定义A *a后,不会调用构造函数。

[解决办法]
得new出来才行

A*a=new A();
[解决办法]
指针只表示一个地址;类的对象表示一个实例,是要根据类的成员分配内存的
[解决办法]
创建对象实例才会调用类的构造函数,创建指针还需要做初始化new完之后才能创建实例调用到构造函数
[解决办法]
A *a 后只是定义了一个指针是指向A类型的,

而在new后,相当于是在堆里创建了一个匿名对象,然后让这个指针指向他。

这个构造函数是那个匿名对象创建的,指针只负责指向

读书人网 >C++

热点推荐