小编Sob*_*uch的帖子

返回时调用C ++复制构造函数

error: use of deleted function 'A::A(const A&)'
 return tmp;
        ^~~
Run Code Online (Sandbox Code Playgroud)

为什么仅在其中存在虚拟析构函数时才调用复制构造函数A?如何避免这种情况?

struct B {};

struct A{
    std::unique_ptr<B> x;
    virtual ~A() = default;
};

A f() {
    A tmp;
    return tmp;
}
Run Code Online (Sandbox Code Playgroud)

c++

18
推荐指数
1
解决办法
994
查看次数

标签 统计

c++ ×1