相关疑难解决方法(0)

移动构造函数和继承

我试图理解移动构造函数和赋值操作在C++ 11中的工作方式,但是我遇到了委托父类的问题.

代码:

class T0
{
public:
    T0() { puts("ctor 0"); }
    ~T0() { puts("dtor 0"); }
    T0(T0 const&) { puts("copy 0"); }
    T0(T0&&) { puts("move 0"); }
    T0& operator=(T0 const&) { puts("assign 0"); return *this; }
    T0& operator=(T0&&) { puts("move assign 0"); return *this; }
};

class T : public T0
{
public:
    T(): T0() { puts("ctor"); }
    ~T() { puts("dtor"); }
    T(T const& o): T0(o) { puts("copy"); }
    T(T&& o): T0(o) { puts("move"); }
    T& operator=(T const& o) …
Run Code Online (Sandbox Code Playgroud)

c++ visual-c++ move-constructor c++11 visual-studio-2012

15
推荐指数
2
解决办法
9217
查看次数