我无法找到关于这个(显然)简单案例的明确答案。假设以下示例:
声明:
class Foo {
// blah blah
Foo& copy(const Foo& other);
Foo& operator=(const Foo& other);
};
定义:
inline Foo& Foo::copy(const Foo& other) {
data_ = other._data;
return *this;
}
Foo& Foo::operator=(const Foo& other) {
return copy(other);
}
如您所见,我将copy()
方法称为 inline ,然后我在operator=
方法中使用它。问题是:这个内联实际上是否有效,或者编译器会忽略它?