将从方法返回的引用分配给变量

时间:2017-12-23 21:26:39

标签: c++ c++11 reference operator-overloading

class A{
/.../
};

class B{
  public:
    A& foo()
    {
       A *bar = new A;
       return *bar;
     }
};

int main()
{
   A varA;
   B varB;
   varA = varB.foo();
   return 0;
}

执行此行时会发生什么varA = varB.foo()?将(在复制/移动赋值运算符函数调用之后)为foo中创建的对象的析构函数调用?

1 个答案:

答案 0 :(得分:1)

不会调用析构函数,分配的对象会泄漏。