C++语法总结之谈

开发 后端
下面给大家介绍下C++语法和一些基本概念,包括C++和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++代码编制
责任编辑:chenqingxiang 来源: IT专家网
相关推荐

2010-01-21 18:00:59

C++语言

2010-01-18 10:53:26

2010-01-27 16:52:31

C++语言学习

2010-01-26 17:53:05

C++入门学习

2010-01-27 15:54:49

C++实现程序

2010-01-15 14:52:33

Visual C++

2010-01-21 09:34:57

C++语法

2010-01-15 10:48:29

C++程序代码

2011-07-14 10:12:50

C++

2010-01-15 16:37:28

Visual C++

2010-02-07 15:12:24

学习Android

2010-02-22 09:43:42

学习Python语言

2010-02-02 13:37:12

如何学习Python

2010-03-02 14:37:05

Android开源语言

2010-02-05 15:47:00

Android JDK

2010-01-22 16:35:41

C++开发

2010-01-26 17:11:13

C++编程

2010-02-06 13:36:57

学习Android程序

2010-02-03 15:52:02

Python学习研究

2010-02-05 11:23:01

C++声明语法
点赞
收藏

51CTO技术栈公众号