如何设计一个类,是该类不能被继承?
方法一
最直观的解决方法就是将其构造函数声明为私有的,这样就可以阻止子类构造对象了。但是这样的话,就无法构造本身的对象了,就无法利用了。
既然这样,我们又可以想定义一个静态方法来构造类和释放类。
对,就这样实现它。
#include<iostream>
using namespace std;
class A
{
public:
static A * Construct(int n)
{
A *pa = new A;
pa->num = n;
cout<<"num is:"<<pa->num<<endl;
return pa;
}
static

本文探讨了两种防止C++类被继承的方法。第一种是通过将构造函数声明为私有,并使用静态方法构造和释放对象,但这种方法限制了在栈上创建对象。第二种方法是利用友元和虚继承,创建一个模板辅助类Base,让FinalClass作为Base的友元并虚继承Base,这样只有FinalClass能访问Base的构造函数,从而防止其他类继承。C++11引入的`final`关键字也能直接阻止类被继承。
最低0.47元/天 解锁文章
172

被折叠的 条评论
为什么被折叠?



