我有一个接口,但我不能使用它,因为方法应该是静态的……或者其他解决方案……据我所知,它们不能是静态的……:
定义了它使用的函数的图形库:
GraphicsLibrary.h
virtual void drawText(const std::string& text, const Point& pt, unsigned char r, unsigned char g, unsigned char b);
这里只是为了说清楚,OpenGL是从GraphicsLibrary派生的:
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
}
然后我的主要我使用该方法......但它给出了一个错误
MyMain
OpenGL::drawText(toString(mousePos_world), drawPosition, 255, 0, 0);
错误:非静态成员引用必须相对于特定对象
我应该如何解决这个问题?我读到我应该将函数设为静态,但我认为我不能......对吗?或者大多数人说,想想为什么你用其他类的方法来构建类,但那是因为我有一个接口......!