我正在尝试在c ++和OpenGL中创建某种基本的UI.有了这个我使用一个名为OGLRectangle的类:
class OGLRectangle : public Renderable, public Listener
{
public:
OGLRectangle();
OGLRectangle(float cX, float cY);
~OGLRectangle();
...
}
Run Code Online (Sandbox Code Playgroud)
这是由Button类继承的,该类包含所有按钮类型之间的共享方法:
class Button : public OGLRectangle
Run Code Online (Sandbox Code Playgroud)
最后,ButtonBrowse类继承自此,并包含文件打开的方法:
class ButtonBrowse : public Button
{
public:
ButtonBrowse(float cX, float cY);
...
}
Run Code Online (Sandbox Code Playgroud)
现在我说对了要在ButtonBrowse中传递构造函数的参数,我需要在构造函数中做这样的事情:
ButtonBrowse::ButtonBrowse(float cX, float cY) : OGLRectangle(cX, cY)
{
...
}
Run Code Online (Sandbox Code Playgroud)
如果是这样,为什么我得到标题中的间接非虚拟错误?
您需要调用构造函数Button,然后调用OGLRectangle构造函数.
ButtonBrowse::ButtonBrowse(float cX, float cY) : Button(cX, cY)
{
...
}
Run Code Online (Sandbox Code Playgroud)
只要将Button其构造函数设置为将参数传递到其直接基类OGLRectangle,您应该没问题.
| 归档时间: |
|
| 查看次数: |
5573 次 |
| 最近记录: |