假设我正在编写一个模板类
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
的定义.没有必要 MyClass
什么时候知道 bla
被定义为。其神奇之处被称为“两阶段名称查找”:在编译模板定义时查找所有不依赖于模板参数的名称。在第二阶段,当模板被实例化时,将在实例化的上下文中查找所有剩余的名称。
关于c++ - 包含模板类型的头文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9225128/