设A为已定义的类,下列对于类A的对象的声明中不正确的是( )。
A、
A a1 ;
B、
A a2(15) ;
C、
A *p=new A ;
D、
A a3( ) ;
答案是D,能分析一下ABCD吗?
直接说d吧,这个是一个可调用对象,但是你这个对象还没创建出来,调用不了它的重载(),abc都是最基础的构造,
A a1;//调用默认构造函数A()
A a2(15);//调用构造函数A(int)
A* p = new A;//调用默认构造函数A()
A a3();//相当于A a3(void);和函数的声明一样,编译器不知道你这个是函数声明还是变量定义