21xrx.com
2024-06-03 04:56:22 Monday
登录
文章检索 我的文章 写文章
C++中如何引用类的静态成员?
2023-07-09 10:35:20 深夜i     --     --
C++ 引用 静态成员

在C++中,静态成员是指类中的一个共享的变量或函数。静态成员与特定的类实例无关,可以被所有类的实例共享。对于静态成员的使用,需要使用作用域解析运算符::来引用。

引用类的静态成员需要按照以下格式进行:


类名::静态成员名;

其中,类名是指需要引用静态成员的类的名称,静态成员名是指需要引用的静态成员的名称。在使用时,需要将该语句放到需要使用的函数或文件的顶部。

考虑一个简单的例子,例如:


#include <iostream>

using namespace std;

class Circle {

 public:

  static int numberOfCircles;

  

  Circle(float r){

    radius = r;

    numberOfCircles++;

  }

  

  float Area(){

    return 3.14*radius*radius;

  }

  

  static int GetNumberOfCircles()

    return numberOfCircles;

  

  

 private:

  float radius;

};

int Circle::numberOfCircles = 0;

int main() {

  cout << "Number of Circles: " << Circle::GetNumberOfCircles() << endl;

  

  Circle c1(2.0);

  cout << "Area of Circle 1: " << c1.Area() << endl;

  cout << "Number of Circles: " << Circle::GetNumberOfCircles() << endl;

  

  Circle c2(3.0);

  cout << "Area of Circle 2: " << c2.Area() << endl;

  cout << "Number of Circles: " << Circle::GetNumberOfCircles() << endl;

  return 0;

}

在上面的例子中,Circle类中定义了一个静态成员变量numberOfCircles,表示 Circle 类的实例数量。当通过 Circle 的构造函数创建一个圆形时,会自动增加 numberOfCircles 变量的值。同时,Circle 类还定义了一个静态函数 GetNumberOfCircles,用于返回已创建的 Circle 的数量。

在 main 函数中,我们首先使用类名加作用域解析运算符来引用静态成员函数 GetNumberOfCircles,然后连续创建两个圆形,并输出圆形的面积以及当前已经创建的圆形实例数量。

总的来说,通过使用作用域解析运算符::,我们可以方便地引用类的静态成员(变量和函数),并且可以在不创建类的实例的情况下访问这些成员。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复