如何在c ++中访问类变量

时间:2011-08-16 12:01:56

标签: c++ class variables

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

4 个答案:

答案 0 :(得分:3)

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::)。

答案 1 :(得分:3)

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 :(得分:0)

我认为Singleton Pattern会有所帮助,但我并不喜欢它。更好的设计是让一个类获得对象的所有权,并将对该对象的引用传递给其他类。

答案 3 :(得分:-2)

是的,可以尝试一下

结构车{

        string model;
        string paint;
        int price;


           };


         int main(){

          // creates an object of the class car

            car BMW;

          // assign the values
           bmw.model = "m sports";
            bmw.paint ="red";
            bmw.price = 24000;


              }