1 定义一个不能被继承的类
1.1 思路:
(1)不能被继承也就意味着如果一个子类继承自父类,则子类无法生成对象。
(2)将父类的构造函数定义为私有的(因为子类的构造函数是合成版本所以会调用父类的构造函数,而父类的构造函数是私有的,则子类就不能构造出对象);
(3)但是这种方式会有一个问题,因为父类的构造函数是私有的则父类也构造不出来对象。
(4)为了解决父类构造不出来对象的问题,则可以在父类定义一个GetObject方法,里面调用父类的构造函数,则可以通过调用GetObject方法来创建一个父类对象;但是类的成员函数一般要通过对象来调用,所以将这个GetObject方法定义为static,这样这个方法就属于这个类的所有对象,就可以通过类名来调用。
1.2 代码如下:
#include<iostream>
using namespace std;
class AA
{
public:
static AA* GetAAObject()
{