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

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

【问题讨论】:

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

标签: c++ class variables


【解决方案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
    };
    

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

    1. 您将类变量设置为 protectedprivate,从而使其无法从其他代码访问。
    2. 您忘记指定类变量的完整范围(在本例中为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 想要这样做“不创建对象”.
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-17
      • 1970-01-01
      • 2010-10-19
      • 2020-04-09
      相关资源
      最近更新 更多