有关构造函数的疑问
各位大侠,请教下为什么定义普通对象会自动调用其构造函数,而定义指针对象却没默认调用其构造函数呢?
例如定义类class A;
若定义A a后,会自动调用构造函数。
若定义A *a后,不会调用构造函数。
[解决办法]
得new出来才行
A*a=new A();
[解决办法]
指针只表示一个地址;类的对象表示一个实例,是要根据类的成员分配内存的
[解决办法]
创建对象实例才会调用类的构造函数,创建指针还需要做初始化new完之后才能创建实例调用到构造函数
[解决办法]
A *a 后只是定义了一个指针是指向A类型的,
而在new后,相当于是在堆里创建了一个匿名对象,然后让这个指针指向他。
这个构造函数是那个匿名对象创建的,指针只负责指向