Class obj;和Class obj();的不同?
我问了我们老师也不知道。。哎,希望能有人帮我。
#include <iostream.h>
class A
{
public: int i;
public: A() { i=10;cout<<"A created"<<endl; }
};
class B:public A
{ int i;
public:
B() { cout<<"B created"<<endl; }
B(int j) {
i=j;
cout<<"B created with value: "<<i<<endl;
}
};
void main()
{
A a(); // A a; 不同?
//B b(20);
cout<<a.i<<endl; // 这样编译不通过。。。
}
/*out:
A created
B created with value: 20
*/
我不明白,A a();和A a;为什么不同,不都是声明A的对象吗?并且应该都使用默认构造(这里有了A()).