程序员|你千万不要对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 。 使用标准库容器是因为它们自己自动管理分配和释放 。
Bjarne Stroustrup(C ++的设计者和原始实现者) 说:内存不是唯一的资源 。 资源是使用后必须获取并(显式或隐式)释放的任何东西 。 例如内存 , 锁 , 套接字 , 文件句柄和线程句柄 。 一个好的资源管理系统可以处理各种资源 。 如果释放没有发生 , 我们就会泄漏 , 并且由于每种资源的数量都有限 , 最终系统将陷入停顿 。 您不需要实际的泄漏即可造成不良影响;过多的资源保留几乎是同样糟糕的 。 例如 , 如果系统在内存 , 锁 , 文件等上的保留时间是原来的两倍 , 那么系统需要配置的资源可能是原来的两倍 。
C ++是一种过时且无用的语言:

  1. Web浏览器开发人员正在使用(用C ++编写)(Google Chrome , Firefox , Opera , Internet Explorer , Safari , Chromium , Microsoft Edge) 。
  2. Microsoft Windows OS和Mac OS , Symbian OS也广泛使用C ++ 。
  3. 使用Microsoft Visual Studio开发.NET程序 , 它也已经用C ++编写 。
  4. VLC Media Player , CCleaner , Internet下载管理器 , KGB存档器 , Media Player Classic , KMPlayer , Notepad ++ , Microsoft Excel等著名的应用软件也都用C ++编写 。
  5. Facebook还广泛使用C ++ 。
  6. 使用WinRAR , ?它已经用C ++编写 。
  7. Sun / Oracle VM用C ++编写 。