0

嗨,我有什么希望是一个快速的问题。作为家庭作业的一部分,我被要求编写自己的模板向量类(大部分代码都在那里,只需要对其进行扩展)。虽然我了解它是如何工作的以及它是做什么的,但我不知道在哪里放置代码或引用它,因为我从未在程序的上下文中看到它。

我是创建一个包含所有这些信息的新 cpp 文件,还是只是将其添加到我的主要方法上方?如果我创建一个新文件(cpp 或 h),我该如何引用它,只需要像平常一样的 #include?

这可能看起来相当简单,但我尝试创建一个新的 .h 文件,然后将其包含在我的主程序中,但我总是遇到范围定义错误。

4

2 回答 2

2

大多数编译器要求您将所有模板代码放在头文件中,而不是放在源文件中。这是由于模板扩展的工作方式。您只需将该标头包含在需要使用矢量类的任何文件中。

创建标头时需要注意的一些事项:

  1. 防止多重包含。如果您的编译器支持#pragma once,您可以将其放在顶部,否则使用该#ifndef MY_HEADER_H .......模式。
  2. 别忘了在你的课末加上分号!!!!
  3. 永远不要放在using namespace whatever;标头的外部范围内(可以在块范围内使用它,例如namespace something { ... }或函数)。
  4. std::vector如果您正在调用您的类,请注意名称冲突vector- 确保std在包含您的标题之前没有人导入命名空间。
于 2013-05-15T02:24:26.417 回答
1

您需要记住的一点是,由于模板的编译模型,您应该将模板声明和定义一起放在头文件中。

您可以为模板化矢量类创建一个头文件,并在您想在其他文件中使用它时包含此头.h文件.cpp

你也可以把它们放在一起main,但是前一个选项更适合你维护你的代码。

于 2013-05-15T02:24:46.903 回答