C++ SFML 2.1 模板错误

标签 c++

我为 SFML 2.1 编写了一个非常简单的类,我用它来处理文本事件,但是当我尝试使用此类创建对象时,我收到此错误:

missing template arguments before '(' token|

我对模板知之甚少,我只知道何时使用它们,但我没有使用它们进行编码的经验。我将在下面链接更重要的代码:

class Text
{
    public:
    sf::Font font;
    sf::Text text;
    Text(sf::Color color = sf::Color(255,255,255), sf::Vector2f position = sf::Vector2f(SCREEN_X/2,SCREEN_Y/2), int c_size=24, string s="NULL")
    {
        font.loadFromFile("Arial.ttf");
        text.setFont(font);
        text.setColor(color);
        text.setPosition(position);
        text.setCharacterSize(c_size);
        text.setString(s);
    }
};

最后,导致此错误的指令:

Text t1(sf::Color(255,0,0), sf::Vector2(10,10), 28, "t1");

是什么导致了这个错误?

最佳答案

sf::Vector2是一个模板类,也就是说你必须提供模板参数,例如 sf::Vector2<int>sf::Vector2<float> . SFML 定义了一些类型定义来帮助您(并且您使用它们)。所以只需修复 sf::Vector2sf::Vector2f这是 sf::Vector2<float> 的类型定义.

关于C++ SFML 2.1 模板错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24640114/

相关文章:

c++ - C++ 中的简单类型变量是对象吗?

c++ - 为什么游戏窗口在特定时间后关闭?

c++ - 获取大于数字的元素个数

c++ - 为什么 rdbuf() 不打印任何东西?

c++ - 如何在 C++ 中解析 XML 文档

c++ - 使用图形中的 Blender 和 Bloom 效果为游戏创建 3D 模型

c++ - 混合托管和非托管 C++ 代码?

c++ - Qt5,文件夹的符号链接(symbolic link)

c++ - 获取可变参数模板可变参数模板参数可变参数

c++ - 如何确保两个不同的 vector 在 C++ 中以相同的顺序混洗?