我在Visual Studio 2019中使用SFML和C++。我想尝试创建一个函数来简化将文本打印到窗口的过程。
#include "SFML/Graphics.hpp"
#include "SFML/Window.hpp"
#include <string>
void type_text(std::string t, sf::RenderWindow w) {
sf::Font font;
font.loadFromFile("consola.ttf");
sf::Text text(t, font, 12);
w.draw(text);
w.display();
}
int main() {
sf::RenderWindow window(sf::VideoMode(860, 540), "Test");
sf::Event e;
while (window.isOpen()) {
while (window.pollEvent(e)) {
if (e.type == sf::Event::Closed)
window.close();
}
}
type_text("this is a test", window); // <= THE PROBLEM
return 0;
}
字符串
在问题行中,“window”作为错误被加下划线。
sf::RenderWindow::RenderWindow(const sf::RenderWindow &)': attempting to reference a deleted function
型
基本上,我如何才能使它,所以我能够使用 * 窗口 * 重载功能和使用它?
1条答案
按热度按时间efzxgjgh1#
窗口对象
sf::RenderWindow w
不能被复制,必须通过引用sf::RenderWindow& w
传递给type_text()
。