我有两个函数,它们是“Data”类的私有成员:
class Date
{
private:
bool leapYear(int y);
void fillDate(int d, Month m, int y);
};
那么,最好定义这个函数:
答案 0 :(得分:4)
你可以在这里选择。以下是一些想法:
这里,如果实现很小,你可以在类中内联编写代码。但是如果逻辑很复杂,你应该将它们放在自己的实现(“。cpp”)文件中。
您也可以开始内联,当代码已经解决了更复杂的问题时,请将实现移动到自己的文件中。
答案 1 :(得分:1)
我强烈建议您不要考虑选项2.这会让您感受到多重定义"如果将此文件包含在多个实现文件中,则链接器会出错,因为定义将(由预处理器)复制到每个.cpp文件中。
答案 2 :(得分:0)
我个人的理念是将所有函数定义放入实现(.cpp)文件中,因为,首先,它将声明(+文档)与定义相加,后者增加了代码清晰度IMO,其次,具有一个地方的所有定义(实现文件)使我更容易找到功能。根据我的经验,必须在头文件和实现文件之间切换,以查看我正在查找的这个特定函数是否在头文件中内联/定义,或者它是否在实现文件中,这总是非常麻烦。在实现文件中包含所有函数定义意味着我知道我将在该文件中找到任何函数的定义,并且不必浪费时间切换和查看。