小编dra*_*ore的帖子

值和指针之间的分配差异?

当我执行以下操作时,我看到紧密循环中的巨大性能差异:

MyObject foo = bar.GetObject();
Run Code Online (Sandbox Code Playgroud)

VS

MyObject* foo = bar.GetObjectPtr();
Run Code Online (Sandbox Code Playgroud)

类函数的具体细节是:

class MyClass
{
  MyObject someobject;
  MyObject& GetObject() { return someobject; }
  MyObject* GetObjectPtr() { return &someobject; }
} bar;
Run Code Online (Sandbox Code Playgroud)

第一行中的赋值比第二行慢得多.有人可以解释发生了什么吗?这是否与默认的复制分配有关?

c++

-2
推荐指数
1
解决办法
131
查看次数

标签 统计

c++ ×1