
1.1 C++简介
C++属于编程语言中的“王者”,也是目前软件开发的主流语言之一。下面对C++进行简要说明。
· 1.1.1 C++语言简介
C++是一种面向对象的计算机程序设计语言,由美国电话电报公司(AT&T)贝尔实验室的本贾尼·斯特劳斯特卢普(Bjarne Stroustrup)博士在20世纪80年代初期发明并实现,最初这种语言被称作“C with Classes”(带类的C)。C++是C语言的继承,进一步扩充和完善了C语言,成为一种面向对象的程序设计语言。
· 1.1.2 C++与C语言的不同
C++与C语言的主要区别如下。
█ 1.面向过程语言和面向对象语言
C语言是面向过程语言,而C++是面向对象语言。C语言和C++的区别,也就是面向过程和面向对象的区别。面向过程编程就是分析出解决问题的步骤(功能模块),然后把这些步骤一步一步地实现,使用的时候依次调用就可以了;面向对象编程就是把问题中的事和物抽象成各个类,然后建立对象,其目的不是完成一个步骤,而是描述对象在整个解决问题的步骤中的行为。下面,以玩五子棋游戏为例进行说明。
(1)用面向过程的思想来考虑:开始游戏,白子先走,绘制画面,判断输赢;轮到黑子,绘制画面,判断输赢;重复前面的过程,输出最终结果。
(2)用面向对象的思想来考虑:先设计棋子类、棋盘系统类、规定系统类以及输出系统类,然后构造具体对象,包括黑白双方(两者的行为是一样的)、棋盘系统(负责绘制画面)、规定系统(规定输赢、犯规等)、输出系统(输出赢家)。面向对象就是实物高度抽象化(功能划分),面向过程就是自顶向下的编程(步骤划分)。
█ 2.具体语言的不同
(1)关键字(又称关键词)不同:C语言有32个关键字,而C++有63个关键字,一些关键字的细微区别如下。
① struct:在C语言中,结构体struct定义的变量中不能有函数;而在C++中可以有函数(或称为方法)。
② malloc:malloc()函数的返回值为void,在C语言中可以赋值给任意类型的指针,在C++中必须强制转换类型,否则会报错。
③ 结构体定义struct和类定义class:class是对struct的扩展,struct默认的访问权限是public,而class默认的访问权限是private。
(2)扩展名不同:C语言源文件扩展名为.c,C++源文件扩展名为.cpp。在Qt中,如果在创建源文件时什么都不给,扩展名默认是.cpp。
(3)返回值类型不同:在C语言中,如果一个函数没有指定返回值类型,默认返回int类型;在C++中,如果一个函数没有返回值,则必须指定为void。