C++与C

C++保留了C语言原有的所有优点,增加了面向对象的机制。

C++是C语言的超集,C++对C的增强,表现在两个方面:

  1. 在原有面向过程的基础上,对C语言的功能做了不少扩充
  2. 增加了面向对象的机制

C++的标准库的中类和函数是在命名空间std中声明的,因此如果程序中需要用到C++标准库,就要用using namespace std 作声明。

C++对C的增强:

  1. register关键字(C++可以对register修饰的变量取地址,register无效,即使不使用register,也有可能会优化)
  2. struct关键字
  3. 类型检查更严格(C中缺少函数类型默认为int型,C++报错;C被调函数无形参,主调可传递参数,C++报错)
  4. 新增bool类型 (占一个字节)
  5. 三目运算符返回的是变量 (在C中返回的是一个常量)

C++对const关键字的实现采用了符号表的机制:

const修饰的变量存放在符号表中,以下两种情况会分配内存空间:

  1. 对const修饰的变量取地址(把const修饰的变量值复制到分配的内存空间)
  2. const修饰全局变量,该变量在其他文件中使用

const修饰的变量可以作为定义数组时的下标,这点在C里面是不能实现的。

一个类中包含两种成员:数据和函数,分别称为数据成员和成员函数。

把一组数据和有权调用这些数据的函数封装在一起,组成一种称为 类 的数据结构。

 

类可以体现数据的封装性和信息隐蔽

具有类特征的变量称为 对象。

一个C++程序可以由一个程序单位或多个程序单位构成。每个程序单位作为一个文件。(C语言源程序的基本单位是函数)

一个程序单位可以包括以下几个部分:

  1. 预处理命令
  2. 全局声明部分
  3. 函数

类是C++新增的重要的数据类型,是C++对C的最重要的发展。

有了类,就可以实现面向对象程序设计中的封装、信息隐蔽、继承、派生、多态等功能。

用main代表“主函数”的名字。每一个C++程序都必须有一个 main 函数。main前面的int的作用是声明函数的类型为整型。程序第6行的作用是向操作系统返回一个零值。如果程序不能正常执行,则会自动向操作系统返回一个非零值,一般为-1。 函数体是由大括号{ }括起来的。本例中主函数内只有一个以cout开头的语句。注意C++所有语句最后都应当有一个分号。 再看程序的第1行“#include ”,这不是C++语句,而是C++的一个预处理命令,它以“#”开头以C++语句相区别,行的末尾没有分号。#include 是一个“包含命令”,它的作用是将文件iostream的内容包含到该命令所在的程序文件中,代替该命令行。文件iostream的作用是向程序提供输入或输出时所需要的一些信息。iostream是i-o-stream 3个词的组合,从它的形式就可以知道它代表“输入输出流”的意思,由于这类文件都放在程序单元的开头,所以称为“头文件”(head file)。在程序进行编译时,先对所有的预处理命令进行处理,将头文件的具体内容代替 #include命令行,然后再对该程序单元进行整体编译。 程序的第2行“using namespace std; ” 的意思是“使用命名空间std”。C++标准库中的类和函数是在命名空间std中声明的,因此程序中如果需要用到C++标准库(此时就需要用#include命令行),就需要用“using namespace std; ”作声明,表示要用到命名空间std中的内容。 在初学C++时,对本程序中的第1,2行可以不必深究,只需知道: 如果程序有输入或输出时,必须使用“#include ”命令以提供必要的信息,同时要用“using namespace std;” ,使程序能够使用这些信息,否则程序编译时将出错。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值