C++语法总结之谈

在讲解C++中的C++语法之前,先让大家理解下C与C++之间的区别,C和C++ C++源于C。 C:面向结构的程序设计语言。 C++:面向对象的程序设计语言。 C++继承C语言的优点,同时增加面向对象特性。

C++程序的组成

(1)预处理命令

以#开头。三类预处理命令。

A 宏定义命令。

B 文件包含命令。

C 条件编译命令。

(2)语句

(3)输入和输出

(4)变量

(5)函数

语言符号

在C++语法中,编译器识别的基本元素是“语言符号”,一个语言符号是编译器不能分成组成成分元素的源程序文本。

语言符号包括:关键词、标识符、常量、字符串文字、运算符、标点字符。

空白字符

空格、制表、换行、回车、换页、纵向制表 (vertical tab)和换行(newline)字符都称为空白字符(white-space),因为它们具有相同的功能。即作为打印页上单词和行之间的空白,使其更容易阅读。通过空白字符和其它语言符号,例如运算符和标点,从而对语言符号进行定界。

当对代码进行词法分析时,C++编译器忽略空白字符,除非使用它们作为分隔符或者字符常量或字符串文字的组成成分。使用空白字符使程序更具可读性。 注意编译器也把注释作为空白字符处理。

首先重复一句Bjarne的话:“我们的系统已经是极度复杂的了,为了避开C++的复杂性而干脆不用C++(Linus的做法),无异于因噎废食。”在所有可用C和C++的领域,C++都是比C更好的语言。当我说“更好的”时候,我说的是C++拥有比C更安全的类型检查、更好的抽象机制、更优秀的库。

当然,凡事都有例外,如果你做的项目1)不大。2)编码中用不到什么抽象机制,甚至ADT(抽象数据类型,例如std::complex这种不含多态和继承的)也用不到,RAII也用不到,异常也用不到。3)你连基础库(如,简化资源管理的智能指针、智能容器)都用不着。

那么也许你用C的确没问题;所以如果你的情况如此,不用和我争论,因为我无法反驳你。我们这里说的领域大致是Bjarne在“C++应用列表”里面列出来的那些地方。 底线是:如果把C++中的诸多不必要的复杂性去掉,留下那些本质的,重要的语言特性,简化语言模型,消除历史包袱。

即便是C++语法的反对者也许也很难找到理由说“我还是不用C++”。在我看来,一个真正从实践意义上理性反对使用C++的人只有一个理由:C++的复杂性带来的混乱抵消乃至超过了C++的抽象机制和库(在他的特定项目中)带来的好处。

值得注意的是,这里需要避免一个陷阱,就是一旦人们认定了“C++不好”,那么这个理由就会“长出自己的脚来”,即,就算我们拿掉C++的复杂性,他们可能也会坚持还是不用C++语法并为之找一堆理由。

我假定你不是这样的人。不过,也许最可能的是他会说:“问题是我们今天用的C++并非如此(简洁),你的假设不成立。”是的,我的假设不成立。但虽然我们无法消除复杂性,我们实际上是可以容易地避开复杂性,避短扬长的。这也是本文的要点,容我后面再详述。

【编辑推荐】

  1. C与C++中标准输入实现方式上的一点区别
  2. C++编译器如何对Const常量进行分配存储空间
  3. C++类库设计的基本构思与方法
  4. 玩转C++语言的几种方法
  5. 如何更好的进行C++代码编制

名称栏目:C++语法总结之谈
浏览路径:http://www.shufengxianlan.com/qtweb/news30/328680.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联