c++中在文件a中定义了namespace A中的static对象,能否在文件b中通过using namespace A进行引用,请举例
时间: 2023-06-20 11:09:04 浏览: 174
C++中的对象和引用
不可以,因为在C++中,static对象只能在定义它的文件中使用,它是局部的。如果要在其他文件中使用,应该将其定义为全局对象,或者提供public的访问函数。
举个例子,比如在a.cpp中定义了namespace A中的static对象:
```cpp
namespace A {
static int a = 10;
}
```
那么在b.cpp中,如果想要使用a,就需要将其定义为全局对象:
```cpp
namespace A {
extern int a;
}
using namespace A;
int main() {
std::cout << a << std::endl;
return 0;
}
```
或者提供public的访问函数:
```cpp
namespace A {
static int a = 10;
int getA() {
return a;
}
}
using namespace A;
int main() {
std::cout << getA() << std::endl;
return 0;
}
```
阅读全文