class Base
{
public:
Base() : a(1) {Base(2);}
Base(int k) : a(k) {}
int a;
};
class Extend : public Base
{
public:
Extend(){};
Extend(int a):Base(a){ }
};
int main()
{
Extend m1(3);
Extend m2;
cout<<m1.a<<","<<m2.a<<endl;
}
原帖由 felixzxh 于 2009-6-21 09:25 发表
Base(){ a=1; Base(2);}
a=1操作的是Base对象的成员
而Base(2)不过是又构造了一个Base对象,上面的a并不在这个Base对象里
原帖由 maxxfire 于 2009-6-21 09:33 发表
多谢多谢,原来这样,看来构造函数果然名符其实,调用它就会构造一个对象出来。。哈哈。。
终于这样才能生效:
Base(){ a=1; *this=Base(2);}
原帖由 maxxfire 于 2009-6-20 17:33 发表
多谢多谢,原来这样,看来构造函数果然名符其实,调用它就会构造一个对象出来。。哈哈。。
终于这样才能生效:
Base(){ a=1; *this=Base(2);}
原帖由 maxxfire 于 2009-6-21 09:33 发表
多谢多谢,原来这样,看来构造函数果然名符其实,调用它就会构造一个对象出来。。哈哈。。
终于这样才能生效:
Base(){ a=1; *this=Base(2);}
欢迎光临 Chinaunix (http://bbs.chinaunix.net/) | Powered by Discuz! X3.2 |