gpt4 book ai didi

c++ - 对于 C/C++,什么时候不使用面向对象编程有好处?

转载 作者:IT老高 更新时间:2023-10-28 21:59:44 29 4
gpt4 key购买 nike

当我使用 C/C++ 进行编码时,我发现自己总是试图将所有内容都融入 OOP 方法。但我意识到我并不总是必须强制一切进入这个模式。使用 OOP 方法与不使用有哪些优点/缺点?我对不使用 OOP 的利弊更感兴趣(例如,不使用 OOP 是否有优化好处?)。谢谢,告诉我。

最佳答案

当然,很容易解释为什么 OOP 是一件好事的一百万个理由。其中包括:设计模式、抽象、封装、模块化、多态性和继承。


何时不使用 OOP:

  • 将方钉放入圆孔中:不要在不需要时将所有内容都封装在类中。有时没有必要,额外的开销只会让你的代码更慢、更复杂。
  • 对象状态会变得非常复杂: Joe Armstrong 中有一句很好的引述,他发明了 Erlang:

The problem with object-oriented languages is they’ve got all this implicit environment that they carry around with them. You wanted a banana but what you got was a gorilla holding the banana and the entire jungle.

  • 您的代码已经不是 OOP:如果您的旧代码不是 OOP,则不值得移植您的代码。 1995年Richard Stallman有一段话

Adding OOP to Emacs is not clearly an improvement; I used OOP when working on the Lisp Machine window systems, and I disagree with the usual view that it is a superior way to program.

  • C 的可移植性: 您可能需要将一组函数导出到 C。尽管您可以通过创建一个结构和一组函数来模拟 C 中的 OOP,该结构和一组函数的第一个参数采用指向该结构的指针struct,它并不总是自然的。

您可能会在这篇名为 Bad Engineering Propertiesof Object-Oriented Languages 的论文中找到更多原因。

Wikipedia's Object Oriented Programming page 还讨论了一些利弊。

关于c++ - 对于 C/C++,什么时候不使用面向对象编程有好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1705724/

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