How access class variables in c++

前端 未结 4 1729
没有蜡笔的小新
没有蜡笔的小新 2021-01-20 00:44

Is it possible in c++ to access class variables in other classes without creating an object. I have tried to use static, but the other class doesnt recognize my variable. I

相关标签:
4条回答
  • 2021-01-20 01:10

    yes you can bro, try this

    struct car{

            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;
    
    
                  }
    
    0 讨论(0)
  • 2021-01-20 01:16

    static is the right keyword here:

    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
    };
    

    They only potential problem I can think of is that

    1. You made the class variable protected or private, thus rendering it inaccessible from other code.
    2. You forgot to specify the full scope of the class variable (with A:: in this example).
    0 讨论(0)
  • 2021-01-20 01:18
    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;
    }
    
    0 讨论(0)
  • 2021-01-20 01:21

    I think the Singleton Pattern would help, but I'm no big fan of it. A lot better design would be to have one class take ownership of the object, and pass references to this object to the other classes.

    0 讨论(0)
提交回复
热议问题