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将根据其类别设置:如果k在vec_ca k = 6;如果k在vec_cb k = 7.是否可以完成?
答案 0 :(得分:3)
有两种方法。你可以像这样使用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;
};