在C ++中,如何在类和函数的标头中编写完整的实现(可能是模板化的)

时间:2018-10-29 08:58:46

标签: c++ header-files

我通常在头文件中声明并在cpp文件中实现,但是现在我正在做作业,为了简洁起见,讲师不希望我这样做,但坚持要求我将所有代码都写在头文件中文件。

那么,最好的方法是什么?

对于类,我应该先声明所有内容,然后转到页面底部并开始实现吗?

class myClass 
{
void myMethod();
}

void myClass::myMethod() { //.... }

或者我应该按照我的声明实施

class myClass 
{
void myMethod() { //... } ;
}

自由功能呢?

我什么时候应该写“内联”?

1 个答案:

答案 0 :(得分:6)

  

或者我应该按照我的声明实施

是的,在课堂上而不是课堂外实施它们。当您的讲师将所有内容放入标题的(可疑的)推理很简洁时,显然这是可行的方法。

  

自由功能呢?

与成员函数相同,可以随时对其进行定义。

  

我什么时候应该写“内联”?

您应该将inline添加到所有普通的自由函数中。对于函数模板或类内成员函数定义,这是不必要的。当您可以使用C ++ 17时,也请考虑内联变量。