SFML试图将类的引用作为参数传递给函数

SFML Trying to pass reference of a class as an argument to a function

本文关键字:参数传递 函数 引用 SFML      更新时间:2023-10-16

我使用的是SFML 2.1,并使用MingW 4.8.1进行构建。当我试图调用一个函数的特定重载,使我的鼠标位置相对于窗口对象。。。

sf::RenderWindow* window;
window = new sf::RenderWindow(sf::VideoMode(640, 480, 32), "Render Window");
sf::Vector2i coords = sf::Mouse::getPosition(window)

我得到以下错误:

error: no matching function for call to 'sf::Mouse::getPosition(sf::RenderWindow*&)'
note: candidates are: 
     static sf::Vector2i sf::Mouse::getPosition()
         candidate expects 0 arguments, 1 provided
     static sf::Vector2i sf::Mouse::getPosition(const sf::Window&)
         no known conversion for argument 1 from 'sf::RenderWindow*' to 'const sf::Window&'

getPosition()功能:

static Vector2i getPosition();
static Vector2i getPosition(const Window& relativeTo);

取自SFML 2.1参考:

sf::RenderWindow源于sf::Window,因此它继承了其所有功能:事件、窗口管理、OpenGL渲染等。

我确信getPosition接受RenderWindow类对象。出于某种原因,它不接受引用这样的对象。

对此该怎么办?

您正在将RenderWindow*传递给getPosition(),而不是RenderWindow。试试这个:

sf::Vector2i coords = sf::Mouse::getPosition(*window);