编译器是否优化了这部分代码(const getter)?

问题描述 投票:0回答:1

我有以下类定义:

class foo {
  private:
    bool m_active;

  public:
    const bool isActive() const // (btw do I need return type `const bool&` here?)
    {
       return m_active;
    }  
};
  1. 带有

    const
    getter (
    foo->isActive()
    ) 的类是否比
    foo->m_active
    (如果它是公开的)工作得更快?我尝试查看反汇编代码,但没有发现任何有趣的东西。

  2. 在哪里可以阅读有关

    const
    getter 和 setter 的信息?我需要深入了解这些方法的使用地点和原因。

c++ oop optimization
1个回答
8
投票

默认情况下,所有成员函数都被考虑进行函数内联。这意味着编译器将优化整个函数调用并将其替换为对成员的直接访问。

所以答案是肯定的。编译器会对其进行优化。

© www.soinside.com 2019 - 2024. All rights reserved.