継承できないクラスをどのように実現しますか?
420 ワード
補助クラスAを宣言し、クラスAの構造関数をプライベートとして宣言し、クラスBを宣言し、Aクラスを友元クラスとして宣言し、BクラスにAクラスを虚継承させる.これで私たちのクラスBは継承されません!コードは以下の通りで、コンパイルエラーが発生し、Cクラスのデフォルト構造関数が削除されました.
#include
using namespace std;
class A {
private:
A() {
}
};
class B : virtual A{
friend A;
};
class C :B {
public:
void fun() {
cout << "hello" << endl;
}
};
int main() {
C c;
c.fun();
return 0;
}