c++ - 如何从其他类访问不同类中的变量

标签 c++ c++11

<分区>

x 不能是静态的

我想拥有

class A{
  static std::vector<C> vec_ca;
public:
  int x = 6;
`};
class B{
 std::vector<C> vec_cb;
public:
 int x = 7;
};
class C
{
  void foo(){
  int  k = x;
  }
};

并且 k 将根据它的类别设置:if k in vec_ca k = 6; if k in vec_cb k = 7. 是否可以完成?

最佳答案

有两种方法。您可以像这样使用 getter 和 setter 方法:

class B{
 std::vector<C> vec_cb;
public:
  int get_x(){return x;}
private:
  int x = 7;
};

并从另一个类调用get_x。实现此目的的另一种方法是使用友元类。所以你可以这样做:

class B{
 std::vector<C> vec_cb;
 friend class A;
private:
  int x = 7;
};

关于c++ - 如何从其他类访问不同类中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40194503/

相关文章:

c++ - 使用 cin.get 获取整数

c++ - 使用 Cython 将 metis 链接到包装的 C++ 模块

c++ - C++11 的 LLVM 和 Clang 支持

c++ - move 构造函数不能默认

c++ - 为什么 stringstream >> 在失败时更改目标值?

c++ - 为什么 C++ 中没有像符号那样的字节顺序修饰符?

c++ - 使用 std::make_tuple 时如何避免构造函数的未定义执行顺序

c++ - 了解 C++ lambda 捕获规范中的 [&]

c++ - 从可连接的线程中销毁线程的对象

c++ - 大类型的 const T& 和简单类型的 T 的特化模板