首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误C2248:'sf::NonCopyable::NonCopyable‘

错误C2248:'sf::NonCopyable::NonCopyable‘
EN

Stack Overflow用户
提问于 2015-08-15 09:03:54
回答 1查看 102关注 0票数 1

我想要在SFML库中创建简单的形状,但是我想不出如何在多个文件中共享项目。我知道长什么样,但我不知道为什么这不管用。

主档案:

代码语言:javascript
复制
#include <iostream>
#include <SFML/Graphics.hpp>
#include  "Ball.cpp"

using namespace std;
using namespace sf;

int main()
{
    RenderWindow win(VideoMode(800, 800), L"Rozdział 1");

    while (win.isOpen())
    {
        win.clear(Color::White);
        Event e;
        while (win.pollEvent(e))
        {
            if (e.type == Event::Closed)
                win.close();    
        }

        Ball ball(win);
        win.display();
    }
}

和ball.cpp

代码语言:javascript
复制
#include <iostream>
#include <SFML/Graphics.hpp>

using namespace std;
using namespace sf;
class Ball
{

public: Ball(RenderWindow win)
{
    CircleShape circle(50);
    circle.setPosition(0, 0);
    circle.setOutlineColor(Color::Red);
    circle.setOutlineThickness(2);
    Texture texture;
    if (!texture.loadFromFile("textura.png"))
        cerr << "Nie można załadować grafiki\n";

    circle.setTexture(&texture);

    win.draw(circle);
}
};

我必须创建这个球的列表,我是C++的新手,我只用Java创建项目,但是首先我想知道如何共享这个项目。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-16 23:02:53

您可以按值传递sf::RenderWindow,这样它就会尝试缓存一个副本,但是sf::RenderWindow类是不可复制的,正如错误消息所指示的那样。

通过引用传递它,或者更好地从sf::Drawable派生您的sf::Drawable类并实现draw()函数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32023237

复制
相关文章

相似问题

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