gpt4 book ai didi

c++ - 为什么 OpenGL 有全局函数?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:52:35 28 4
gpt4 key购买 nike

为什么 openGL 不是面向对象的?大家都在教面向对象编程+设计模式,但是OpenGL有很多全局函数。 这不是坏风格吗?

最佳答案

低级 API 的全部意义在于使其尽可能精简和可移植。给它一个面向对象的架构不允许这样做:

  • 多态性增加了不必要的函数调用开销。
  • 它迫使您使用一些相对困难的调用约定,这会降低可移植性。
  • 您不能包装面向对象的体系结构以使其成为程序化的,但您可以反其道而行之;因此,让事情尽可能灵活是有意义的。如果需要,围绕 OpenGL 编写面向对象的包装器是微不足道的。

最后,您真的应该质疑您所学的有关 OOP 的内容。尽管您的学院或大学可能会告诉您,OOP 并不是程序设计的 Elixir 。在 C++ STL(以及与此相关的大部分 Boost)中绝对没有面向对象的原因非常充分。

面向对象在某些情况下很有用,但您应该了解它何时有用,何时无用,并且在任何情况下您都不应认为任何不是 OOP 的东西都是“糟糕的风格”。

关于c++ - 为什么 OpenGL 有全局函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2166622/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com