1.纠结的c++




C++从字面意思理解,给人的感觉好像是C语言的升级版.
C plus plus

但C++增加的语法太多太多了.
多到让人手足无措.

我们举个例子:
假设把一头大象放进冰箱.
我们分别写三个函数.

打开冰箱门()
把大象放进去()
关上冰箱门()

void main(){
       打开冰箱门();
       .................

}

叫做面向过程.  我们之前学习的C语言编程方式,叫做面向过程开发.


而C++不仅支持像上面C语言这种写法.
除此之外,还有N种办法去解决上面的问题


这就导致了C++的学习非常困难,非常复杂,耗费巨大精力,也因为C++过于复杂,一些设计缺陷,要避免犯错,学习"踩坑"的地方太多.

同样花一年时间,用到C++学习上,可能收效甚微.
但是放到其他编程语言上,已经可以解决很多现实的问题了.

巨量时间的投入/产出比,非常低.

目前除了一些GUI和游戏领域,越来越多的其他领域,被其他编程语言取代,可以更快更高效的开发.
包括Linux之父也是对C++排斥的,他认为C++把问题复杂化了.
而且C++的编译器也非常复杂,编译器版本的不同,导致同样的C++源代码,兼容性特别差.
这款编译器能通过的代码,那款编译器提示错误,并且提示的错误莫名其妙,排查起来非常麻烦.



所以C++不仅难学,用不好的话,反而会"伤害"到自己.
Java是C++的一个阉割版.

https://www.zhihu.com/question/38101493

不过,也因为如此,C++包含了很多编程语言的特性.
我们把C++的功能简单学习一下,对我们以后学习其他编程语言有莫大的帮助.

将来如果学习Java或者Python的时候,你会情不自禁的和C++对比.
更加能够体会它们之间的区别,以及各自的魅力.

并且懂的,什么情况下,用什么编程语言,可以最高效的解决手里的问题.
我们程序员不应该限制自己,给自己加头衔,我是C程序员,我是C++程序员,我是Python程序员,我是Java程序员.

一流的程序员,遇到项目问题的时候,它首先会评估项目难度,再考虑用哪种编程语言可以从性能和开发时间上找到一个平衡点.
考虑怎么样分配任务……

C++里面多了很多新的名词概念.
会C语言更加抽象了.


而这些概念和名词,往往都是针对大型软件开发项目发明的.
所以,我们单纯的为了学习C++,而学习C++语法,是很难体会,总感觉明明有更简单的办法,为什么要把代码写的这么"麻烦","绕圈"!

我尽力能通俗易懂的语言,给大家讲C++吧.


C++在C的基础上,编译器替我们做了很多事情,而编译器为我们多做的一些事情,就意味着,我们可以少写很多代码.
所以,也不要对C++产生太大的恐惧感!

但是优点往往又是缺点.

一个温柔的人,很可能往往是一个懦弱的人.
一个勇敢的人,很可能往往是一个鲁莽的人.


C++给我们提供了各种语法,让我们少写很多代码.
但这些语法的变化性,灵活性太强大,以至于我们看着代码,最后理解不了,到底内存里面发生了什么事情,到底编译器背后替我们做了哪些事情.


如果我们写的代码,自己摸不清对应着内存里面发生了什么变化,就可能产生理解错误.
而如果一个程序,代码量越来越大,不确定的地方越来越多的时候,这个程序最后可能就彻底"崩溃"了,关键是你还不知道到底哪里出了问题.


也因为C++过于灵活.
你可以喜欢A和C两种方式开发.
他喜欢C+E+B三种方式混合开发.


虽然你们写的都是C++代码,但是彼此却看不懂对方的C++代码.


C++的雄心非常大,它想把所有的事情都干了,所以很多最新的编程技术,都可以在C++中一睹风采.
从下节课开始,我们正式踏入C++的世界.

我个人认为C++是很"重"的一门编程语言,我对它又爱又恨

猜你喜欢

转载自www.cnblogs.com/xiaodaxiaonao/p/9195596.html