c++中如何访问类变量

Posted

技术标签:

【中文标题】c++中如何访问类变量【英文标题】:How access class variables in c++ 【发布时间】:2011-08-16 12:01:56 【问题描述】:

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

【问题讨论】:

您需要更具体。也许发布一些示例代码。 【参考方案1】:
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
;

我能想到的唯一潜在问题是

    您将类变量设置为 protectedprivate,从而使其无法从其他代码访问。 您忘记指定类变量的完整范围(在本例中为A::)。

【讨论】:

谢谢。我也会接受你的回答,但我必须做出决定。【参考方案3】:

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

【讨论】:

【参考方案4】:

是的,兄弟,试试这个

结构汽车

        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;


              

【讨论】:

OP 想要这样做“不创建对象”.

以上是关于c++中如何访问类变量的主要内容,如果未能解决你的问题,请参考以下文章

c++ - 如何使用`this`访问类数组中的成员变量

如何在构造函数中访问类变量以在不使用 C++ 中的 this 指针的情况下分配它们

如何使用 C++ 中的继承函数访问派生类中的局部变量

C++ 使用变量访问类的公共成员

从 C++ 中的类访问私有变量

如何在 C++ 中使用静态变量在不同的类之间共享一个数组?