c++ - 作为类成员的函数的定义

标签 c++ function class private member

我有两个函数,它们是“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/

相关文章:

javascript - 从另一个外部函数调用 mootools 类方法

c++ - 以之前的大小显示 QDialog

c++ - DeviceIoControl 对内存位置的访问无效

c++ - GMP(GNU 多精度): "mpz_mod" function error

Mysql TRIGGER ON UPDATE 函数

Javascript:函数表达式优于函数声明

C++11,默认成员构造是件好事吗?

C++ 单例实现 - 静态问题

r - 将类和模式从字符更改为数字

python - 从类中选择一个随机方法