模板化类定义的适当位置
Proper Place to Put Definition of Templated Class Definition
在类的磅定义之外定义类是合适的,还是在磅定义内定义?下面是我所问问题的例子。
#ifndef CLASS
#define CLASS
template <typename T>
Class
{
Class();
};
template <typename T>
Class::Class()
{
}
#endif
——或
#ifndef CLASS
#define CLASS
template <typename T>
Class
{
Class();
};
#endif
template <typename T>
Class::Class()
{
}
我将在包含保护符(磅定义)中定义它,以避免重复定义符号。所以对于模板类,就像你的例子一样,我总是在include保护中定义它,因为它们总是必须在头文件中定义。
对于其他非模板类,我可能在源文件(.cpp)中定义成员函数,因此这显然不在include保护之外。
作为脚注,我还指出,对于这样一个简单的构造函数,我实际上会在类声明中定义它,甚至根本不定义它,但我猜您的实际代码比给出的示例要复杂一些。
相关文章:
- 如何定义更改car类中car位置的方法
- 将文件复制到自定义位置,存在字符串转换问题
- CMake 在 Windows 上的自定义位置上找不到 Boost
- 内存中类位置的成员是否取决于类成员在类定义中的位置?
- 在C++的适当类型定义位置
- 跳转到通过输入坐标定义的控制台屏幕位置
- 当使用Lua作为嵌入式语言(比如c++)时,有什么简单/方便的方法可以找到变量在Lua中的定义位置吗
- 移动 std::bitset<N> 是否超过 N 个位置未定义的行为?
- 在 Visual Studio 2010(及更高版本)中定义包含或链接路径变量的位置
- 使用自定义GCC位置构建软件包
- 如何专用/分配自定义内存位置,以便可以在C 中编辑该位置
- 通过在此指针上放置新位置重新初始化对象时未定义的行为
- 尝试在自定义 QT 创建器文本编辑器中创建查找和替换循环.我似乎无法设置光标位置
- C 1Z标准如何定义模板功能声明中属性的正确位置
- 当我在Xcode上访问矩阵(openCV垫子)的位置时,为什么我会得到未定义的行为(exc_bad_access(代码=
- C 11中的怪异RNG行为在定义并在不同的位置进行调用
- C++命名空间std的定义方式/位置(文档/标准链接)
- 如何将向量插入2D矢量的定义位置
- 全局倾角定义的位置/如何存在哪些其他类似功能
- 类定义中定义的成员函数的编译方式是否与C++中其他位置定义的成员函数不同