我有两个函数,它们是“Data”类的私有(private)成员:
class Date
{
private:
bool leapYear(int y);
void fillDate(int d, Month m, int y);
};
那么,在哪里定义这个函数最好:
- 在类定义中;
- 在类外的头文件中;
- 还是在“.cpp”文件中?
最佳答案
你可以在这里选择。以下是一些可以让您下定决心的想法:
- 内联速度不再是问题,因为编译器现在擅长链接时优化。因此,性能不应成为此处的决定因素(编译速度也很重要,但这是另一袋蠕虫)。
- 在类内部定义的小型内联成员函数可能是“记录”类所做的事情的简单方法。此外,这往往会使实现保持本地化,这在阅读代码时会很舒服。但是不要过度。
- 大函数原则上应该放在它们自己的文件中,或者至少放在类定义之外,因为它们无缘无故地扰乱了类定义代码。模板代码也不异常(exception)。
- Pimpl 也有优点/缺点,但在这里我看不出有什么好的理由在你的简单案例中引入这样的野兽。它们通常用于减少头文件之间的依赖性。
在这里,如果实现很小,您可以在类内部编写内联代码。但是如果逻辑很复杂,你应该把它们放在它们自己的实现(“.cpp”)文件中。
您也可以开始内联,当代码变得更复杂时,将实现移到它自己的文件中。
关于c++ - 作为类成员的函数的定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28781511/