class A{
int _a;
public:
/--/ void setfunc(int a) ............. will static works here
{
_a=a;
}
int getValue(){return _a};
};
class B{
public:
void func()
{
/--/ setfunc(1); ...................Dont want to create object of A.
}
};
class C{
public:
void something()
{
A aa;
cout<<aa.getValue(); ............. want a value update by class B setfunc
}
};
int main()
{
B bb;
bb.func();
C cc;
cc.something();
}
问题:如何在不使用该类对象的情况下在另一个函数中调用setfunc()。此外,如果它通过某类B改变设置值“_a”,那么每当我尝试通过getValue()
在其他类中检索它时,相同的值将持续存在。答案 0 :(得分:3)
在静态函数中,您只能使用类的静态成员。像这样(_a是静态的):
class A {
static int _a;
public:
static void setfunc(int a)
{
_a=a;
}
static int getValue(){return _a};
};
否则,您无法对非静态成员执行任何操作:
class A {
int _a;
public:
static void setfunc(int a)
{
_a=a; // Error!
}
static int getValue(){return _a}; // Error!
};