2011-08-16 185 views
1

C++有可能在不创建对象的情况下访问其他类中的类变量。我试图使用静态,但其他类不识别我的变量。 我有3班。其中两个应使用sae变量。在第三课中,我正在改变价值观。将不胜感激,如果你能帮助。也许你有一个例子。如何在C++中访问类变量

+0

添加一些示例代码 – James

+0

您需要更具体。也许发布一些示例代码。 – Dan

回答

2
class Myclass 
{ 

    public: 
     static int i; 
}; 

int Myclass::i = 10; 


class YourClass 
{ 

    public: 
     void doSomething() 
     { 
      Myclass::i = 10; //This is how you access static member variables 
     } 

}; 

int main() 
{ 
    YourClass obj; 
    obj.doSomething(); 
    return 0; 
} 
2

static是正确的关键字:

class A { 
public: 
    static int i; // <-- this is a class variable 
}; 

class B { 
public: 
    void f() { A::i = 3; } // <-- this is how you access class variables 
}; 

他们只有我能想到的潜在问题是,

  1. 您所做的类变量protectedprivate,从而将其从其他代码无法访问。
  2. 您忘记指定类变量的全部范围(在本例中为A::)。
+0

谢谢。我也会接受你的回答,但我必须做出决定。 – buddy

0

我觉得Singleton Pattern会有所帮助,但我的它没有什么大的风扇。更好的设计将是让一个类获取对象的所有权,并将此对象的引用传递给其他类。