C++|你千万不要对C++程序员说什么


C++|你千万不要对C++程序员说什么
文章图片
C++|你千万不要对C++程序员说什么
文章图片
C++|你千万不要对C++程序员说什么
你如果是学兽医的 , 那你会给家禽看病打针嘛 。 你如果是学物流的 , 哦?快递!为什么你看美剧英剧还要看字幕?你不是学习英语的吗?等等这些问题 。 你是不是也觉得挺无话可说的 。 所以我下面想说的是关于C++方面的 。
C++是一种面向对象的语言:
不 。 C++是一种多范式编程语言 。 C++支持OOP , 过程编程 , 通用编程 , 模板元编程和函数式编程 。 它是一种多范式编程语言 , 它是C++的最大优点之一 。 程序员应该可以自由选择自己的编程风格 , 并且该风格应得到C++的完全支持 。
C++只是对C的扩展 , 是C的超集:
C和C++都是不同的编程语言 , 具有不同的规则并由不同的委员会标准化 。 自C99以来 , C和C++都出现了分歧 。 C99和C11的许多功能并不是C++语言的正式组成部分 , 但某些编译器喜欢g++并clang++支持它们作为编译器扩展 。 C++不是100%向后兼容C 。 有许多程序在C中有效 , 但在C++中无效 。
C++中的内存管理易于出错 , 并且内存泄漏是令人讨厌的问题 , 因为C++缺少垃圾回收:
这是一个绝对错误的误解 , 大多数Java和C#程序员都对C++有所了解 。 垃圾回收打破了C++的主要设计理念之一:“您不用为不使用的东西付费” 。 这意味着 , 如果您不需要垃圾收集 , 则C++运行时系统不应浪费时间清理整个垃圾 。 C++程序员必须避免使用new/new[
和delete/delete[
大部分的时间 。 如果需要动态数组 , 请使用std::vector 。 如果您需要字符串 , 请使用std::string而不是纯C样式char[
/char* 。 如果您需要单链表 , 请使用std::forward_list 。 如果您需要双向链表 , 请使用std::list 。 使用标准库容器是因为它们自己自动管理分配和释放 。
BjarneStroustrup(C++的设计者和原始实现者)说:内存不是唯一的资源 。 资源是使用后必须获取并(显式或隐式)释放的任何东西 。 例如内存 , 锁 , 套接字 , 文件句柄和线程句柄 。 一个好的资源管理系统可以处理各种资源 。 如果释放没有发生 , 我们就会泄漏 , 并且由于每种资源的数量都有限 , 最终系统将陷入停顿 。 您不需要实际的泄漏即可造成不良影响;过多的资源保留几乎是同样糟糕的 。 例如 , 如果系统在内存 , 锁 , 文件等上的保留时间是原来的两倍 , 那么系统需要配置的资源可能是原来的两倍 。
C++是一种过时且无用的语言:
Web浏览器开发人员正在使用(用C++编写)(GoogleChrome , Firefox , Opera , InternetExplorer , Safari , Chromium , MicrosoftEdge) 。
MicrosoftWindowsOS和MacOS , SymbianOS也广泛使用C++ 。
使用MicrosoftVisualStudio开发.NET程序 , 它也已经用C++编写 。
VLCMediaPlayer , CCleaner , Internet下载管理器 , KGB存档器 , MediaPlayerClassic , KMPlayer , Notepad++ , MicrosoftExcel等著名的应用软件也都用C++编写 。
Facebook还广泛使用C++ 。
使用WinRAR , ?它已经用C++编写 。
Sun/OracleVM用C++编写 。
【C++|你千万不要对C++程序员说什么】Office365也使用C++ 。
MySQL , MicrosoftSQLServer , ApacheHTTPServer , MariaDB , MongoDB , Oracle数据库 , C#编译器已用C++编写 。