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

时间:2014-08-25 20:32:23

标签: c++ function mingw sfml

我正在使用SFML 2.1并使用MingW 4.8.1构建。 当我尝试调用函数的特定重载时,它将MousePosition RELATIVE传递给窗口对象...

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类对象。出于某种原因,它不接受对这种对象的引用。

可以做些什么?

1 个答案:

答案 0 :(得分:3)

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

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