首页 > 解决方案 > 为什么这个 C++ 构造函数会自动指向复制构造函数?

问题描述

我正进入(状态

Severity    Code    Description    Project    File    Line    Suppression State
Error    C2280    'World::World(const World &)': attempting to reference a
deleted function

在调用行作为错误(因为我的类中没有复制构造函数)

World wd = World(&vp, am);

这是一个构造函数。

我很困惑为什么会自动将复制构造函数定向到。

有人有什么主意吗?

这是我的班级标题:

class World{
    public:
        KDtree tree;
        ViewPlane *vp;
        DrawPanel * paintArea = &(DrawPanel(wxString("test"), wxDefaultPosition, 400,400));
        wxApp app;
        Vector3d backGround;
        vector <Geometry*> objects;
        Shader shader;
        vector<Light*>lights;

        World(ViewPlane*, Vector3d& Am);
        ....
}

还有我的构造函数:

World::World(ViewPlane * v, Vector3d &Ambient){
    vp = v;
    shader = (Shader(Ambient));
}

标签: c++

解决方案


使用

Bar b = Bar(...)

语法确实会复制初始化:https ://en.cppreference.com/w/cpp/language/copy_initialization

你可能只想

World wd(&vp, am);

反而。


推荐阅读