为什么OpenGL不会使其功能过载?

时间:2013-09-17 03:47:17

标签: c++ opengl overloading

最近,我开始使用 C ++ 使用 OpenGL

我对宣布顶点或更改当前颜色

的方式感到恼火

glColor3f()glVertex{2,3,4}{sdif}()方法。

现在, OpenGL 为什么不重载这些功能。

例如,最好输入glColor()glVertex(),它们将被参数数量及其类型识别。

最终,代码看起来会更好,更容易阅读,结果相同。

我希望有一个很好的理由重载类似的功能。

1 个答案:

答案 0 :(得分:5)

因为OpenGL最初设计时使用C作为其API的主要语言,而C不支持函数重载。


然而,请引用维基百科:

  

虽然功能定义表面上与那些相似   在C编程语言中,它们与语言无关。

OpenGL总是可以拥有一个支持函数重载的C ++接口和所有好东西,虽然AFAIK上没有任何规范,并且大多数只支持C ++包装器。