次のクラスがあります。
には、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
、コピーコンストラクターが機能しません
どんな助けでも大歓迎です!