C ++特定变量到一般变量

时间:2013-03-26 11:44:50

标签: c++ variables

我目前的工作代码:

void GraphicFunctions::drawECM(const OpenGLCamera& camera)
{
   gl->drawECMEdges(camera, ecm, layerID);
}

OpenGL类:

void OpenGL::draw(const OpenGLCamera& camera)
{
   const vector<double>& cameraBBox = camera.getBoundingBox();
}

是否可以使“OpenGLCamera”更通用,将其变成指针或什么? 例如:

void GraphicFunctions::drawECM(const OpenGLCamera& camera)
{
   const int* camerapointer = camera;
   gl->drawECMEdges(camerapointer, ecm, layerID);
}

OpenGL类:

void OpenGL::draw(const int& camera)
{
   const vector<double>& cameraBBox = camera->getBoundingBox();
}

这样我也可以使用其他相机类型......!

1 个答案:

答案 0 :(得分:0)

只需使用继承来添加不同的相机类型。如果您通过引用

传递它们也可以
struct Camera1 : public OpenGLCamera
{
  // reimplement something
}
struct Camera2 : public OpenGLCamera
{
}

现在您可以将它们传递给OpenGL::draw(const OpenGLCamera& camera)