首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何返回sf::RenderWindow?

如何返回sf::RenderWindow?
EN

Stack Overflow用户
提问于 2016-09-14 09:41:25
回答 2查看 528关注 0票数 1

因此,我正在开发一个微型引擎,探索SFML。我目前使用的是一个WindowManager类。这是我的代码。

代码语言:javascript
复制
class WindowManager
{
private:
    sf::RenderWindow window;

public:
    void setWindow(int x, int y, std::string title)
    {
        window.create(sf::VideoMode(x, y, 32), title, sf::Style::Titlebar | sf::Style::Close);
    }

    sf::RenderWindow getWindow()
    {
        return window;
        //Error Here
    }
};
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-09-14 09:56:30

如果您看一下sf::RenderWindow的继承图

您会注意到它继承自sf::NonCopyable。所以你不能退还它的复印件...因为它的复制构造函数和赋值运算符是私有的。

您可以做的是返回一个sf::RenderWindow&、一个sf::RenderWindow*或一个std::shared_ptr<sf::RenderWindow>,或者...

票数 4
EN

Stack Overflow用户

发布于 2016-09-14 09:59:07

我怀疑你是否想在你的getter中复制一个窗口。我猜你想要返回一个对你的窗口的引用:

代码语言:javascript
复制
class WindowManager {
// private: private is useless there.
    sf::RenderWindow window;

public:
    // Returning a reference. Note the '&' after the type.
    const sf::RenderWindow& getWindow() const {
        return window;
    }
};
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39481297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档