(是的,此问题是“基于观点的”,因此,如果您想成为湿毯子,请予以标明,但这是一个严重的问题,访问此站点的人应该有资格回答。)
在同时使用C ++和C之后,我得出的结论是C ++是虚假的希望。我开始使用它,认为它比C更好,更易于使用且功能更强大(当然不牺牲性能),我得出的结论是,每种优势都有劣势,所以最终没有优势更好:
- 它为您提供了构造函数和析构函数的简单性,但随后您必须担心复制构造函数和赋值运算符的复杂性(现在在现代C ++ move构造函数中)。您定义的每个对象都需要进行大量测试。
- 您可以避免使用智能指针进行复制,但是随后您不得不担心是使用唯一指针还是共享指针(甚至可能使用老式的原始指针)。
- 它为您提供了继承和多态性的简便方法,但随后您必须记住要声明析构函数是虚拟的(或泄漏内存)。
- 它为您提供了异常的简便性(而不是必须检查每个函数调用的返回码是否有错误),但是随后您就不得不担心异常安全性,因为异常可能几乎在任何时候发生(如果您不小心)并导致某些关键代码路径的状态丢失。
我能想到使用C ++的唯一半途而废的理由是因为很多现有代码都是用C ++编写的。如果我想使用以C ++实现的库,例如C ++标准库或MFC或某些开源GUI工具包,那么如果我也用C ++编写代码,则会更容易。从这个意义上讲,C ++就像是一个邪教。一旦进入,您就可以开始找借口,以合理化您为何陷入如此丑陋的境地。
C就像上帝。它是所有不错的现代编程语言的根,这是无需实际编写原始机器代码即可表达机器代码的最纯粹的方法。
...那么您认为这使C ++怎样?