Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How access class variables in c++

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 have 3 classes. In two of those the sae variables should be used. In the third class I am changing the values. Would be grateful if you could help. Maybe youve got an example.

like image 289
buddy Avatar asked Aug 16 '11 12:08

buddy


2 Answers

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;
}
like image 103
Alok Save Avatar answered Nov 14 '22 00:11

Alok Save


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).
like image 28
Frerich Raabe Avatar answered Nov 13 '22 23:11

Frerich Raabe