IBM ISL のインタビューでこの質問をされました。参照 (&) の代わりにポインターを使用して、Abstract 基本クラスのコピー コンストラクターを記述できますか?
使えると思います。コメント/提案はありますか?
#include <string>
//abstract base class
class ABC{
int a;
int b;
char *p;
public:
virtual void f() = 0;
ABC(){};
ABC(ABC* abc){
a = abc->a;
b = abc->b;
p = new char[strlen(abc->p)+1];
p = strcpy(p, abc->p);
}
};
//derived class
class ConcreteDerivedClass: private ABC
{
public:
ConcreteDerivedClass(){}
void f(){}
ConcreteDerivedClass(ConcreteDerivedClass& obj):ABC(&obj){}
};