当前位置导航:炫浪网>>网络学院>>编程开发>>C++教程>>C++进阶与实例

C++基础知识:限制类对象生成的数量

限制类对象生成的数量,如果我们需要的数值不是“1”,而是某个其它的某个值怎么办?最容易想到的办法是通过添加静态控制变量--计数器来达到目的。假设我们需要为打印机设计一个类,首先可能会这样设计:

 class Printer{
public:
    class TooManyObjects{};   // 当需要的对象过多时就使用这个异常类  
    Printer();
    Printer(const Printer& rhs);
    ~Printer();
    ...

private:
    static size_t numObjects; 
};

//定义静态类成员
size_t Printer::numObjects = 0; 

Printer::Printer()
{
    if (numObjects >= 1){
        throw TooManyObjects();
    } 
    //继续运行正常的构造函数;
    ...
    ++numObjects;
}

Printer::Printer(const Printer& rhs)
{
    if (numObjects >= 1){
        throw TooManyObjects();
    } 
    //继续运行正常的构造函数;
    ...
    ++numObjects;
}

Printer::~Printer()
{
    //进行正常的析构函数处理;
    ...
    --numObjects;
}

 

共3页 首页 上一页 1 2 3 下一页 尾页 跳转到
相关内容
赞助商链接