C ++如何在派生类中访问基类静态成员?

时间:2013-11-21 07:31:18

标签: c++ static-members

我是c ++ static varibles.i的新手。我不知道如何从派生类成员函数访问base的静态成员。例如

#include <iostream.h>
  class base       // base class
 { 
  protected:
  static int value;
  };

 int base::value=0; // static variable initalization

 class derived:public base
 {
  public:
  get_variable();
  };

我知道静态变量是一个类变量。我们只能通过使用没有绑定对象的类名来访问(如果我错了,请更正我)。我的问题是如何访问成员函数中的静态变量派生类get_varible访问静态变量。?

3 个答案:

答案 0 :(得分:2)

您应该在基类中将private更改为protected。 您的private static变量只能在base类中访问。

答案 1 :(得分:1)

只需使用它,因为它是派生类的成员。

int derived::get_variable()
{
   return value; 
}

答案 2 :(得分:0)

您可以像这样访问派生类中的变量:

int derived::get_variable()
{
     return base::value;
}

您需要使用基类的名称,因为该变量是静态的,并且您可以访问它,因为它受到保护。

正如herehere所述,在某些情况下,不允许从派生类访问类的受保护成员的额外检查不适用于静态成员