C++子类赋值问题
本帖最后由 Big_Wang5 于 2012-12-23 15:46:42 编辑 C++中有纯虚函数的类是不能实例化的,但是如果子类要实现赋值操作符,需要调用基类的复制构造函数,这样 会出错啊!!!!
class BaseClass
{
public:
BaseClass(int m):men1(m){}
BaseClass(BaseClass& item){ this->mem1 = item.mem1;}
BaseClass& operator=(BaseClass& item){ this->mem1=item.mem1; return *this; }
virtual void Fun()const=0;
virtual ~BaseClass(){}
private:
int mem1;
};
class DerivedClass
:public BaseClass
{
public:
DerivedClass(int m,int n):BaseClass(m),mem2(n){}
~DerivedClass();
void Fun()const{}
DerivedClass& operator=(DerivedClass &item){
if(&item != this){
BaseClass::BaseClass(item);//此处不合法!!!!!!
}
this->mem2 = item.mem2;
return *this;
}
private:
int mem2;
};