C++ 全局变量是在整个程序范围内都可以访问的变量。它们在程序的生命周期内一直存在,可以被程序中的任何函数或类实例访问。全局变量通常用于存储在整个程序中都需要使用的数据。
以下是 C++ 中全局变量的具体应用示例:
#include <iostream>
int counter = 0; // 全局变量
void incrementCounter() {
counter++;
}
int main() {
incrementCounter();
incrementCounter();
std::cout << "Counter: " << counter << std::endl; // 输出 "Counter: 2"
return 0;
}
#include <iostream>
// 全局变量,用于存储日志记录级别
int logLevel = 1;
void logMessage(int level, const std::string& message) {
if (level >= logLevel) {
std::cout << message << std::endl;
}
}
int main() {
logMessage(1, "This is an info message.");
logMessage(2, "This is a debug message.");
logMessage(3, "This is a warning message.");
return 0;
}
#include <iostream>
#include <mutex>
class Singleton {
public:
static Singleton& getInstance() {
std::call_once(initFlag, &Singleton::initSingleton);
return *instance;
}
private:
Singleton() {}
~Singleton() {}
Singleton(const Singleton&) = delete;
Singleton& operator=(const Singleton&) = delete;
static void initSingleton() {
instance = new Singleton();
}
static std::once_flag initFlag;
static Singleton* instance;
};
std::once_flag Singleton::initFlag;
Singleton* Singleton::instance = nullptr;
int main() {
Singleton& singleton = Singleton::getInstance();
return 0;
}
需要注意的是,过度使用全局变量可能导致代码难以维护和调试。因此,在设计程序时应尽量减少全局变量的使用,并使用其他方法(如函数参数、类和对象)来传递和管理数据。