我有下一节课。
在main
我有 2 种赋值运算符(A=A 和 B=B)。
我正在努力main
工作,所以我尝试了:
class A { // assume that this class is abstract
public:
virtual void assignment(const A& num) = 0;
void operator=(const A& num) { assignment(num); }
void func() = 0; // the class is abstract
};
class B: public A {
int i;
public:
void assignment(const B& num) { i = num.i; }
B& operator=(const B& num) { i = num.i; }
void func() { cout << "hello!\n"; }
};
int main()
A* a1 = new B(7); //assume I have it
A* a2 = new B(6); //assume I have it
B b1(2);
B b2(4);
*a1 = *a2; // implement an assignment operator
b1 = b2; // implement an assignment operator
}
但我遇到了一些错误,告诉我这B
是一个抽象类,然后复制构造函数不起作用
任何帮助表示赞赏!