C++ C++;将特定变量转换为一般变量

C++ C++;将特定变量转换为一般变量,c++,variables,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.getBoundin

我当前的工作代码:

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

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

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

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

只需使用继承添加不同的摄影机类型即可。如果您通过引用传递它们,这也会起作用

struct Camera1 : public OpenGLCamera
{
  // reimplement something
}
struct Camera2 : public OpenGLCamera
{
}

现在可以将它们传递给<代码> opengl::(const opengL照相机和相机)

ERM,继承-你没有听说过这个概念吗?阅读关于继承和虚拟成员的功能。请阅读关于继承和多态的主题,重点是C++(IE和)不要太关注CPLUSPPLUS——它不是很好。有很多好东西。但是我怎么能把继承放在函数中,我的意思是,放在变量中,我知道怎么做。。。但是怎样才能使一个函数成为“无类型”或“可变的”?但是我怎样才能将继承放入一个函数中,我的意思是,放入变量中,我知道怎么做。。。但是如何使函数“无类型”或“可更改”呢?不,你不能这样做。你真的应该读一些评论中建议的东西,但这样的话,我仍然需要另一种功能/方法用于另一种类型的相机。。。正确的?因为我想使用多种类型的相机。。。!OpenGLCamera、UnityCamera、Direct3DCamera(所有不同的类型…)所以OpenGL::draw(const SomeTypeOfCamera&camera)无法工作。。。这样,我只能使用OpenGLCameras,还是我认为这是错误的?您可以定义您使用的每个摄像头的常用方法。然后为它们创建一个基类。然后为您拥有的每个派生类重新实现它们