c++特定变量转换为通用变量

C++ specific variable to a general one

本文关键字:变量 转换 c++      更新时间:2023-10-16

我当前工作代码:

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();
}

这样我就可以使用其他类型的相机了…!

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

传递它们,这也会起作用。
struct Camera1 : public OpenGLCamera
{
  // reimplement something
}
struct Camera2 : public OpenGLCamera
{
}

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