是否可以从myVar
?
foo2()
struct A {
void foo() {
static int myVar;
}
void foo2() {
// can I access A::foo::myVar from here ??
}
};
谢谢!
的Massimo
答案 0 :(得分:4)
您可以从函数返回对它的引用:
int& foo() {
static int myVar;
return myVar;
}
void foo2() {
std::cout << foo() << std::endl;
}
请注意,您的问题为什么需要访问此变量并不清楚。对于你想要解决的任何问题,可能会有更好的解决方案。
答案 1 :(得分:3)
不,myVar
只是foo()
中的有效符号。如果您想从其他功能访问它,请将其提升到类中,如下所示。
struct A {
static int myVar;
void foo() {
A::myVar;
}
void foo2() {
A::myVar;
}
};
答案 2 :(得分:0)
不,你不能在另一个函数中访问myVar
变量。如果你将myVar
作为结构数据成员,那会更好。
struct A {
static int myVar;
void foo() {
}
void foo2() {
}
};
答案 3 :(得分:0)
您无法访问在其他方法体中声明的局部变量。所以答案是否定的,将变量全局放到类中,然后就可以访问