背景色yellow |
那么怎么樣既要保證這個類的完整性,又防止其他類的繼承呢?
- 這就要借助友元來實現,因為友元是不可以被繼承的。如果一個類的構造函數要借助它的友元類,那么繼承了這個類的類就無法構造自己的對象。從而杜絕了被繼承。
#include <iostream>
using namespace std;
class C;class base
{
private:base() {}friend class C; //設class C為class BASE的友元
};
class C : public virtual base {};
class D :public C {};int main()
{C c;D d; // 不可以實例化對象
}``