【发布时间】:2015-04-23 13:55:39
【问题描述】:
给定以下类声明:
template <int N>
class MyClass {
public:
MyClass();
~MyClass();
};
以及以下定义:
template <int N>
MyClass<N>::MyClass() {
}
template <int N>
MyClass<N>::~MyClass() {
}
我有两个问题:
- 我是否必须每次都写
MyClass::(有和没有模板)? - 我必须在每个构造函数和析构函数之前写
template <int N>吗?
【问题讨论】:
-
是的,是的。其他任何事情都会变得模棱两可之类的,不是吗?
-
宏可能有助于减轻此类样板的负担。
-
@灵溪神号。不不不不不不不不。没有。没有。
-
顺便说一句:我建议阅读 this FAQ 关于模板(和 other things)。
-
@eclipse 嘿,我正要为你刚才问的 C++ 链接错误问题写一个答案。如果您还没有修复它,简短的回答是
inline函数绝对必须在标题中定义。因此,要么将其全部放在标题中,要么删除inline,然后再次拆分。希望对你有帮助。
标签: c++ class templates definition