包括模板类型的头文件
Include header file of template type
我正在编写一个模板类,比如
template <class T>
class bla {
bla() ;
~bla() ;
};
template <class T>
bla<t>::bla(){}
template <class T>
b<t>::~b(){}
只要T是int
,char
,依此类推,它就可以工作。。。但如果它将是一个自定义类MyClass
,则需要包含头文件MyClass.h
,或者我错了吗?
问题:如何以模板式的方式完成,即类似的方式
#include "T.h"
干杯!
使用bla<MyClass>
时,需要包含bla
的定义和MyClass
的定义。当定义bla
时,MyClass
不一定是已知的。这方面的神奇之处被称为"两阶段名称查找":在编译模板定义时,将查找所有不依赖于模板参数的名称。在第二阶段,当模板被实例化时,所有剩余的名称都会在实例化的上下文中查找。
嗯,情况正好相反。如果您有一个类MyClass
,您想在其中一个模块(C++中的翻译单元)中使用它,那么您将包括模板容器(上面的源代码,让我们将其命名为container.h
),然后创建数据结构。
// main.cpp
#include "container.h"
#include "myclass.h"
int main()
{
bla<MyClass> foo;
// lots of more things...
}
也许问题在于您不知道如何将代码划分为模块。一个简单的经验法则是将每个类放在一个模块中,每个模块都有一个.h文件(接口,所有声明都在其中)和.cpp文件(实现文件,大致在其中编写方法内部)。
希望这能有所帮助。
相关文章:
- 通过C++从目录中过滤特定文件类型
- Ini 文件类型名称 预期C++
- 用于随机数据访问的最有效文件类型
- Visual Studio 2019 - 设置文件类型的默认扩展名
- 如何使用C++将.trc文件类型转换为文本文件?
- 如何指定可以打开的文件类型
- 更改代码::块上的默认保存文件类型
- 使用文件对话框选择包含特定文件类型的文件夹?
- MFC,查找特定文件类型
- 搜索并限制为特定文件类型VS2017
- 是否可以将Visual Studio 2017将C 代码编译到EXE以外的文件类型中
- VIM:执行复杂文件类型的脚本和显示结果
- 功能"fread()"不读取特定文件类型?
- 如何在用户修改后使用旧版驱动程序中的 PE 标头获取原始文件类型
- 在makefile中更改构建规则以构建多种文件类型
- 使QT/C 程序显示其文件类型,如Windows上已知
- 是否可以将其他文件类型添加到Visual Studios清理过程中
- 强制将特定文件编译为Objective-C/文件类型,但将整个项目编译为Objective C++
- 如何从FindFirstFile()中获取多个文件类型是可能的吗
- 跨平台方式获取用户友好的文件类型描述