но как насчет встроенных методов внутри класса?
Оба синтаксиса для встроенных функций (с использованием явного inline
и определения функции-члена внутри определения класса) предоставляют только подсказку о вставке длякомпилятор.С точки зрения performance они равны.
В случае определения функции-члена в объявлении класса, читаемость последнего должна быть вашейОсновная проблема: это действительно больно засорять интерфейс класса множеством строк деталей реализации.Поэтому избегайте этого, если ваша функция-член состоит более чем из одного оператора: return stuff
или простая пересылка должна быть в порядке, но обычно не более того.
class MyClass
{
public:
int f() const { return m_i; }
int g() const;
private:
int m_i;
};
inline int MyClass::g() const
{
return m_i;
}
// both member-functions behave equally (except for naming)