是的。 C是一种简单的命令式编程语言。如果您以前曾经编程过,则可以在大约六周内拿起C。在C ++出现之前,这就是编程语言的方式。 Pascal为六个星期,C为六个星期,BASIC为两个星期。
您可以将C ++称为多重范例编程语言。它的命令式语法与C相同,因此他可能与开始学习C所需的时间相同。
但是随后您必须学习课程和面向对象的程序设计。 OO编程非常微妙。您可能需要几个月的时间才能相信自己可以执行别的操作。
然后是模板和模板元编程。您可能需要花费数年的时间来学习。还有异常处理。并且您至少需要对模板有一个基本的了解(对于RAII),才能有效地使用异常处理。
C ++有一个很大的I / O流,子系统需要学习。然后是标准的库容器,算法和迭代器。这是一个难懂但是得学的内容。
任何人,我的意思是任何声称自己可以在六周内学习完C ++的人都充满了自负的味道。也许您可以学到足够的知识来阅读别人的C ++代码,然后逐渐获得理解。但最好不要在没其他人检查的情况下实际使用它。
为什么很多东西在C中容易出错?
C无法将通用功能结构化或组合在一起。如果您要使用C构建一个非常大的程序(例如,超过100,000行代码),则C的单个全局名称空间会被符号污染。诸如get()或do()之类的简单函数必须在名称上附加一个名词,以说出您正在获取或移动的东西,因此您需要使用getFoo()和doBar()来将它们与类似命名的getBlah()和doZoo()比较。同样,您要操作的对象不仅是隐式或者属于全局名称空间的一部分,而且还必须是该函数的参数。现在您有了getFoo(&myFoo)和doBar(&thatBar)。实际上,您正在执行的操作是创建C ++类。
如果您曾经在C中使用函数指针,或者一连串的if / else语句,或者选择了要调用的函数的开关很大,这表明您真正想要的是C ++中的虚函数。如果编写包含代码且看起来像函数的C宏,那么您想要的是C ++模板函数。这些问题的C版本很容易出错,并且当您弄错它们时,编译器给出的错误消息也很难解释。
领取专属 10元无门槛券
私享最新 技术干货