継承できないクラスをどのように実現しますか?

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;
}