我完全不知道应该把构造函数的定义放在哪里。有时你会看到像这样的内容:
// point.h
class Point {
Point(int x, int y) {
x_ = x;
y_ = y;
}
private:
const int x_;
const int y_;
}
有时你会看到这样的内容:
// point.h
class Point {
Point(int x, int y);
private:
const int x_;
const int y_;
}
// point.cc
Point::Point(int x, int y) {
x_ = x;
y_ = y;
}
即有时候像构造函数、拷贝构造函数等内容会在.h
中声明,在.cc
文件中实现,有时候则在头文件中定义等等。
但是在什么情况下?哪种方式是最佳实践,哪种方式不是?
inline
时,这实际上取决于情况。请查看C++ FAQ lite第9节“内联函数”,详细了解此主题。 - phlipsyconst
。这是一个严重的错误,问答者不应该接受这个答案。 - Omnifarious