温馨提示×

c++静态全局变量的访问权限如何设置

c++
小樊
81
2024-12-06 21:10:18
栏目: 编程语言

在C++中,静态全局变量的访问权限可以通过以下方式设置:

  1. 默认访问权限(即文件作用域):如果不对静态全局变量显式指定访问修饰符,那么它的访问权限默认为“文件作用域”。这意味着该变量只能在定义它的源文件中访问。在其他源文件中,无法直接访问该变量。
// file1.cpp
#include <iostream>

static int staticGlobalVar = 10; // 默认访问权限为文件作用域

void foo() {
    std::cout << "Static global variable in file1: " << staticGlobalVar << std::endl;
}
  1. public访问权限:如果希望在其他源文件中也能够访问该静态全局变量,可以将其声明为public。这样,所有包含该静态全局变量的源文件都可以访问它。
// 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.cppfile2.cpp中访问了。注意,我们在file1.h中使用了extern关键字来声明staticGlobalVar,这样其他源文件就可以知道它的存在。

0