C++保护访问

use*_*443 3 c++

无论如何,我可以在没有继承的情况下访问类中的受保护变量.

class ClassA{
  protected:
    int varA; 
};

class ClassB{
  protected:
    ClassA objectA;

};


ClassB theMainObject;
Run Code Online (Sandbox Code Playgroud)

我想通过theMainObject访问varA.

Rod*_*Rod 5

你可以成为classB朋友classA

class ClassA{
  protected:
    int varA; 

  friend ClassB;
}
Run Code Online (Sandbox Code Playgroud)

但是使用访问器可能会更好,因为你没有将类耦合在一起.

class ClassA{
  int getA() { return varA;}
  void setA(int a) { varA = a; }
  protected:
    int varA; 
}
Run Code Online (Sandbox Code Playgroud)