Kaznachei Asked:2020-04-07 18:11:38 +0000 UTC2020-04-07 18:11:38 +0000 UTC 2020-04-07 18:11:38 +0000 UTC 许多类需要的一个变量。如何实施?C++ 772 例如,我有在不同头文件中声明的类。所有这些类都需要一个int变量。也就是说,这些类依赖于这个变量并且可以改变它。类将如何通过此变量相互影响。实现这一点的最佳方法是什么? c++ 2 个回答 Voted Best Answer Harry 2020-04-07T18:36:19Z2020-04-07T18:36:19Z 如果类的实现(包括对该变量的访问)位于不同的 .cpp 文件中,那么通常是这样的。 在所有带有类的标题中 - extern int answer; (或将适当的标题与此广告联系起来)。在某些 .cpp - 它的定义中, int answer = 42; 如果声明为static- 每个 .cpp 文件都有自己的变量。例如: intus.h static int answer{42}; 酒吧.cpp #include <iostream> #include "intus.h" void bar() { std::cout << ++answer << std::endl; } foo.cpp #include <iostream> #include "intus.h" void foo() { std::cout << ++answer << std::endl; } 主文件 void foo(); void bar(); int main() { foo(); bar(); foo(); bar(); } 编译,获取 43 43 44 44 因此您可以立即看到每个 .cpp 文件都有自己的 .cpp 文件answer。 但这本身就是一个糟糕的想法 - 通过全局变量进行类通信......重新设计你的应用程序...... Andrej Levkovitch 2020-04-07T18:22:56Z2020-04-07T18:22:56Z 你需要一个静态变量,你可以像这样声明它: static int answer{42}; 当然,这个变量应该在你所有需要它的类的范围内。
如果类的实现(包括对该变量的访问)位于不同的 .cpp 文件中,那么通常是这样的。
在所有带有类的标题中 -
(或将适当的标题与此广告联系起来)。在某些 .cpp - 它的定义中,
如果声明为
static- 每个 .cpp 文件都有自己的变量。例如:intus.h
酒吧.cpp
foo.cpp
主文件
编译,获取
因此您可以立即看到每个 .cpp 文件都有自己的 .cpp 文件
answer。但这本身就是一个糟糕的想法 - 通过全局变量进行类通信......重新设计你的应用程序......
你需要一个静态变量,你可以像这样声明它:
当然,这个变量应该在你所有需要它的类的范围内。