相关疑难解决方法(0)

在一行上声明多个对象指针会导致编译器错误

当我这样做(在我班上)

public:
    Entity()
    {
        re_sprite_eyes = new sf::Sprite();
        re_sprite_hair = new sf::Sprite();
        re_sprite_body = new sf::Sprite();
    }

private:
    sf::Sprite* re_sprite_hair;
    sf::Sprite* re_sprite_body;
    sf::Sprite* re_sprite_eyes;
Run Code Online (Sandbox Code Playgroud)

一切正常.但是,如果我将声明更改为:

private:
    sf::Sprite* re_sprite_hair, re_sprite_body, re_sprite_eyes;
Run Code Online (Sandbox Code Playgroud)

我得到这个编译器错误:

error: no match for 'operator=' in '((Entity*)this)->Entity::re_sprite_eyes = (operator new(272u), (<statement>, ((sf::Sprite*)<anonymous>)))
Run Code Online (Sandbox Code Playgroud)

然后它说候选人re_sprite_eyessf::Sprite对象和/或参考.

为什么这不起作用?声明不一样吗?

c++ oop sfml

21
推荐指数
3
解决办法
2万
查看次数

标签 统计

c++ ×1

oop ×1

sfml ×1