c++ - 成员函数与传递对全局函数的引用相同吗?

标签 c++ function methods

我能确定吗:

class foo {
  public:
  int x;
  void bar(int k) {
    x = k;
  }
};
foo o;
o.bar(5);

将与:

class foo {
  public:
  int x;
};

void foobar(foo& f, int k) {
  f.x = k;
}

foo o;
foobar(o, 5);

我知道两者都会将“x”设置为“k”,但我可以确定它们都以相同的速度执行/生成相同的 asm 吗?编译器可以更好地优化方法吗?

最佳答案

生成汇编程序并进行比较(GCC 的-S 标志)。

关于c++ - 成员函数与传递对全局函数的引用相同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4987661/

相关文章:

javascript - javascript中 "click"事件的嵌套函数调用

c++ - websocketpp 回调(通过函数指针的类方法)

c++ - Boost.Fusion 适配结构中默认值的 Boost.Spirit.Qi 语法

c++ - 如何在编译时排除单元测试

c++ - 两个整数之间的随机函数生成器 C++

c++ - 通过引用和内存使用

java - 将 FileWriter 作为参数传递给方法

c++ - 如何为这段代码创建一个方法

java - 使用 while 循环根据收到的参数调用方法?

c++ - LNK2019 (VS 2008) 使用模板函数指针完整实现模板函数