我有一個接口,但我不能使用它,因爲方法應該是靜態的......或另一種解決方案......就我所見不能是靜態的...:C++接口錯誤,非靜態成員引用必須是相對於特定對象
有它使用的函數的定義的圖形庫:是從GraphicsLibrary衍生
GraphicsLibrary.h
virtual void drawText(const std::string& text, const Point& pt, unsigned char r, unsigned char g, unsigned char b);
這裏只是要清楚,OpenGL的:
OpenGL.h
class OpenGL : public GraphicsLibrary
OpenGL.cpp從GraphicsLibrary使用虛函數和支架之間是「做」的事情..:
OpenGL.cpp
void GraphicsLibrary::drawText(const std::string& text, const Point &pt, unsigned char r, unsigned char g, unsigned char b)
{
//does things
}
然後是IM我主我使用的方法...但它給出了一個錯誤
MyMain
OpenGL::drawText(toString(mousePos_world), drawPosition, 255, 0, 0);
錯誤:非靜態成員引用必須是相對於特定對象
我應該如何解決這個問題?我讀過,我應該使這個功能是靜態的,但我認爲我不能......對嗎?或者大多數人都這麼說,想想爲什麼用這種方式構建類,以便使用其他類的方法,但那是因爲我有一個接口...!