📜  使用静态成员函数计算对象数(1)

📅  最后修改于: 2023-12-03 15:06:59.946000             🧑  作者: Mango

使用静态成员函数计算对象数

在面向对象编程中,使用静态成员函数计算对象数是一种常见的技术。静态成员函数是类中的一个函数,其与类不同的是,它不针对任何特定的对象,而是属于整个类。

以下是一个使用静态成员函数计算对象数的示例。假设有一个名为 Person 的类,我们希望能够计算出有多少个 Person 对象已经被创建。

首先,我们需要在 Person 类中定义一个静态变量 count,以跟踪对象的数量。我们还需要定义一个名为 getCount 的静态成员函数,以返回当前对象的数量。

class Person {
  private:
    static int count;
  public:
    Person() { count++; }
    ~Person() { count--; }
    static int getCount() { return count; }
};

在上面的代码中,构造函数 Person() 和析构函数 ~Person() 都会在 Person 对象创建和销毁时调用。在构造函数中,我们增加计数器 count 的值,而在析构函数中,我们减少其值。

静态成员函数 getCount() 用来返回当前对象的数量。由于它是一个静态函数,因此它不会访问任何实例成员变量,而是直接返回静态变量 count

现在,我们可以创建几个 Person 对象,然后调用 getCount() 函数来获得对象的数量:

int main() {
  Person p1, p2, p3;
  cout << "Number of persons: " << Person::getCount() << endl;
  return 0;
}

上述代码将创建三个 Person 对象,然后输出对象数量。由于我们的示例中只创建了三个对象,因此应该输出:

Number of persons: 3

总结:静态成员函数在类中具有唯一性。它们不属于任何对象,而是属于整个类。使用静态成员函数计算对象数既方便又实用,它在编写大型程序时非常有用。