3

Can we define a function as such in C or C++ where a certain function cannot access it?

4

1 回答 1

2

C/C++ 为您提供了两种类型的全局变量,虽然很多人可能会说静态变量不是全局变量...

现在,如果在所述函数之后定义全局变量,就可以实现这一点。这可能不切实际,特别是如果变量是在头文件中定义的,因为在这种情况下,您必须在 #include 之前定义该函数,这可能不会,甚至不可能。

现在,静态变量特定于定义它们的 .c 或 .c++ 文件,并且通常不被视为全局变量,但它们是因为它们在您的程序中是唯一的。静态变量可以在单独的文件中定义,使其他文件中的其他函数无法访问它们。(请记住,C++ 中的静态变量是在命名空间内定义的没有名称的变量。)

在 C++ 中,您还可以定义一个静态的变量成员。这意味着该变量是全局变量,但您可以将其设为私有变量。为了进一步保护它,您可以在子类中将其定义为私有成员。但是,无论哪种方式,您都可能需要获得对该变量的某种形式的访问(否则它是无用的),从而添加返回指针、引用或该变量当前值的函数......

于 2013-09-24T05:05:19.733 回答