0

アプリケーションの入力システムにSFMLを使用しています。

size_t WindowHandle;
WindowHandle = ...; // Here I get the handler

sf::Window InputWindow(WindowHandle);
const sf::Input *InputHandle = &InputWindow.GetInput();  // [x] Error

最後の行で、入力システムの参照を取得する必要があります。

ドキュメントからのGetInputの宣言は次のとおりです。

const Input & sf::Window::GetInput () const

問題は:

>invalid conversion from ‘const sf::Input*’ to ‘sf::Input*’

どうしたの?

4

1 に答える 1

1

参照ではなくポインターが必要な特別な理由はありますか? そうでない場合は、これを試すことができます:

const sf::Input & InputHandle = InputWindow.GetInput();  

これにより、入力ハンドルへの参照が返されます。

ところで、これは私のために働いた:

const int& test(int& i)
{
  return i;  
}

int main()
{
   int i = 4;

   const int* j = &test(i);

   cout << *j << endl;
   return 0;
}

出力 : 4

コンパイラが参照を指すことを望まない理由がわかりません。

于 2010-05-29T12:38:23.143 に答える