У меня есть следующее определение класса:
class foo { private: bool m_active; public: const bool isActive() const // (btw do I need return type `const bool&` here?) { return m_active; } };
Работает ли класс с const геттером (foo->isActive()) быстрее, чем foo->m_active (если это будетобщественности)?Я пытался посмотреть на разобранный код, но не нашел ничего интересного.
const
foo->isActive()
foo->m_active
Где я могу прочитать о const геттерах и установщиках?Мне нужно глубокое понимание того, где и почему используются эти методы.
По умолчанию все функции-члены рассматриваются для встраивания функций.Это означает, что компилятор оптимизирует весь вызов функции и заменит его прямым доступом к члену.
Так что ответ - да.Компилятор оптимизирует его.