1

在英镑定义之外定义您的类是否合适,或者它们是否进入英镑定义?我在问什么的例子可以在下面看到。

#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()
{
}
4

1 回答 1

2

我会在包含守卫(磅定义)中定义它以避免多重定义的符号。所以对于模板类,就像你的例子一样,我总是在包含保护中定义它,因为它们总是必须在头文件中定义。

对于其他非模板类,我可能会在源 (.cpp) 文件中定义成员函数,因此这显然会在包含防护之外。

作为脚注,我还要指出,对于这样一个简单的构造函数,我实际上会在类声明中定义它,甚至根本不定义它,但我猜你的实际代码比示例复杂一点给定的。

于 2013-03-29T02:19:01.377 回答