C++中怎么阻止一个类被继承
Contents
C#中可以用sealed关键字,但是,C++中怎么阻止一个类被继承呢?
方法就是把这个类的构造函数声明成private的,这样就不能被继承了。当然更好的办法是用非技术的手段了:)
方法1: 构造函数private,提供一个Factory方法,缺点就是使用者必须用这个factory方法,不能直接使用这个类。
1 | class NoDerive { |
方法2: 构造函数public,但是虚拟继承自一个private构造函数,没有方法1的缺点,但是看着有点hack。
1 | class NoDerive; |