因此,我正在开发一个微型引擎,探索SFML。我目前使用的是一个WindowManager类。这是我的代码。
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
}
};发布于 2016-09-14 09:56:30
如果您看一下sf::RenderWindow的继承图

您会注意到它继承自sf::NonCopyable。所以你不能退还它的复印件...因为它的复制构造函数和赋值运算符是私有的。
您可以做的是返回一个sf::RenderWindow&、一个sf::RenderWindow*或一个std::shared_ptr<sf::RenderWindow>,或者...
发布于 2016-09-14 09:59:07
我怀疑你是否想在你的getter中复制一个窗口。我猜你想要返回一个对你的窗口的引用:
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;
}
};https://stackoverflow.com/questions/39481297
复制相似问题