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()).
[解决办法]
cout < < typeid(a).name();执行一下就知道了。