【发布时间】:2013-04-03 16:54:57
【问题描述】:
我有一个 main.cpp 和一些类,每个类都定义在两个文件中:一个头文件和一个 .cpp 文件。 在 main.cpp 我有一个二维向量。我想在类的成员函数中使用这个向量。首先我尝试包含主文件,但我收到了重新定义错误。之后我尝试在另一个 .h 文件中定义向量。但这也没有用。 所以我应该怎么做才能在定义一些类时使用这个向量,这样它就可以保存成员函数所做的更改。
不幸的是,向量是全局的!
有关更多信息,此向量是游戏的棋盘。这个游戏有一些对象:怪物、人类、宝藏和一些陷阱。 该板在主要功能之前是全局定义的。 main.cpp 中有一些函数使用了这个板,我上面提到的 3 行中的类在其成员函数中使用了这个板。
是使用'extern'的解决方案吗?(我不知道它是什么,我只是在答案中看到它!-如果它是解决方案,我应该搜索一下。)
【问题讨论】:
-
在您的 C/C++ 参考文档中查找
extern关键字。也就是说,使用引用参数并忘记全局的概念,除非整个程序少于 25 行代码。 -
这是一个全局变量(坏主意)吗? main() 或其他函数中的局部变量?如果我们要为您提供帮助,这类事情很重要。
-
通过引用传递给相关函数。
-
@komeilshahhosseini:由于某种原因,您是否受限于全局向量?重新设计代码以使全局向量不再存在会是一个更好的主意;有关详细信息,请参阅我对以下答案之一的评论。
-
这很公平。我仍然建议学习参考资料(它们并不像看起来那么可怕)并且这次设计正确,而不是练习一种糟糕的方法。
标签: c++