在C++中,静态全局变量的访问权限可以通过以下方式设置:
// file1.cpp
#include <iostream>
static int staticGlobalVar = 10; // 默认访问权限为文件作用域
void foo() {
std::cout << "Static global variable in file1: " << staticGlobalVar << std::endl;
}
// file1.cpp
#include <iostream>
static int staticGlobalVar = 10; // 默认访问权限为文件作用域
void foo() {
std::cout << "Static global variable in file1: " << staticGlobalVar << std::endl;
}
// file2.cpp
#include <iostream>
#include "file1.h"
void bar() {
std::cout << "Static global variable in file2: " << staticGlobalVar << std::endl;
}
// file1.h
#ifndef FILE1_H
#define FILE1_H
extern int staticGlobalVar; // 声明为public
void foo();
#endif // FILE1_H
在这个例子中,我们将staticGlobalVar
声明为public,这样它就可以在file1.cpp
和file2.cpp
中访问了。注意,我们在file1.h
中使用了extern
关键字来声明staticGlobalVar
,这样其他源文件就可以知道它的存在。