首页 > 解决方案 > 如何限制为 C++ 中的单个类创建的对象数量?

问题描述

例如:(我想为一个类限制 10 个对象)。

         class base{
               /--------/
         };
           void main()
           {
           base a1;
           base a2;
           -------
           base a10;
           base a11//Error
         }

标签: c++class

解决方案


您可以添加一个static成员作为类实例的计数器。当计数器超过 10 时,您会抛出异常(运行时错误)并且作业完成。

例如:

class MyClass
{
   private:
      static unsigned int count;
      //...

      void check_count()
      {
         if(++count > 10)
            throw MyException("Error: Too many instances of MyClass created"); //MyException being your own exception class (deriving for std::exception)
      }

   public:
      MyClass()
      {
         check_count();
         //...
      }
      MyClass(const MyClass & mc)
      {
         check_count();
         //...
      }
      ~MyClass
      {
         --count;
      }
};

unsigned int MyClass::count = 0; //Initialize the counter to zero

推荐阅读