1. C++语言
1. C++的发展
C++是从C语言发展演变而来的,首先是一个更好的C引入了类的机制,最初的C++被称为“带类的C”1983年正式取名为C++
从1989年开始C++语言的标准化工作
于1994年制定了ANSIC++标准草案
于1998年11月被国际标准化组织(ISO)批准为国际标准,成为目前的C++
2.C++的特点
(1)C++保持与C兼容
(2)用C++编写的程序可读性更好,代码结构更为合理,可直接地在程序中映射问题空间的结构。
(3)生成代码的质量高,运行效率仅比汇编语言代码段慢10%到20%。
(4)从开发时间、费用到形成的软件的可重用性、可扩充性可维护性和可靠性等方面有了很大的提高,使得大中型的程序开发项目变得容易的多。支持面向对象的机制,可方便地构造出模拟现实问题的实体和操作。
2. C++程序的结构
3. C++程序编辑、编译和运行
C++程序的编辑、编译和运行C++源程序文件扩展名为.CPP
支持鲲鹏、Intel、高通等主流CPU机器
在Windows下,我们常用Visual C和VS开发环境来编辑、编译和运行C++程序。
在Linux下,vim编辑器,GCC编译器等
在Andoid下,C++Compile编译器等
4. C++在C上的扩充
从C到C++的扩充(面向过程方面)
1. 注释行C++的输入输出
2. 灵活的局部变量说明
3. const修饰符
4. 内联函数
5. 带有默认参数的函数
6. 函数的重载
7. 作用域运算符
8. 运算符new和delete
9. 引用
1. C++输入输出流
C++数据的输入与输出是通过I/O流来实现的,I/O流输入或输出的是一系列字节。
使用插入符“<<”向cout输出流中插入字符使用提取操作符 “>>”从cin输入流中抽取字符
#include<iostream>
using namespace std;
int main()
{
int i = 0;
cout<<i;
cin>>i;
return 0;
}
2. 用const取代#define
C++建议,用const取代无参宏定义,消除了宏的不安全性。关于 const 的更多知识可以移步到相关文章:C语言: 关于const操作的简单理解
#include<iostream>
using namespace std;
int main()
{
int a=l;
const Tl=a+a;
const T2=T1-T1;
cout <<"T2 is"<<T2<<endl;
return O;
}
//输出:T2 is 0
3. 内联函数
声明时使用关键字: inline.
编译时在调用处用函数体进行替换,节省了参数传递、控制转移等开销。
注意:
内联函数体内不能有循环语句和switch语句;
使用内联函数是一种空间换时间的措施;
内联函数在第一次被使用之前必须进行声明或定义;
内联函数具有宏定义#define相同的作用和相似的机理,但消除了#define的不安全因素。
4. 带有缺省参数值的函数
C++允许函数的实参与形参个数不同.方法是: 在说明函数原型时(若没有说明函数原型,则应在函数定义时说明)为形参制定缺省值.调用时如给出实参,则采用实参值,否则采用预先给出的缺省形参值。 例如下图:
注意:
在函数原型中,所有参数从右向左缺省
int add(int x,int y=5,int z=6);//正确
int add(int x=1,int y=5,int z);//错误
int add(int x=1,int yint z=6);//错误
在函数调用时,若某个参数省略,则其后的参数皆应省略而采用缺省值。
init(20); //正确
init( ,20); //错误
声明中给出了缺省值,定义中不要给出缺省值
5. 作用域标识符::
两个同名变量, 一个是全局的,另一个是局部的,可用作用域标识符::表示引用全局变量
#include<iostream>
using namespace std;
int aver;
int main()
{
int avar;
aver = 25;
::aver = 10;
//局部变量avar
//全局变量avar::avar=10:
cout<<"local avar ="<<avar<<endl:
cout<<"global avar ="<<::avar<<endl:
return 0;
}
7. 引用
引用的概念
引用通常被认为是某个变量的别名,声明一个引用的格式如下下:
类型 & 引用名 = 已定义的变量名
int i = 5;
int &j = i;
//这里的i,j共用同一内存
注意:
引用除了用作函数的参数或返回类型外,在声明引用时必须立即对它进行初始化
引用不可重新赋值>
并不是任何类型的数据都可以引用,下列情形的引用声明都是非法的:
- 不允许对void进行引用
- 不能建立引用的数组
- 不能建立引用的引用
- 引用不能用类型来初始化
- 没有空引用
小结:
1. C++引入const的使用,指针分为常量指针和指针变量,C++完全保留了C指针变量的一些特性。
2. C++允许把频繁调用的小代码函数指定为内联函数来提高执行速度,但这是用空间(程序容量)来换取时间(执行速度)
3. 带有缺省参数值的函数在类的构造函数中如果使用不当,会导致程序的二义性问题。
4. 引用是C++新增加的,是被引用变量的一个别名,主要用于调用函数时传递参数和返回值,采用地址传递方式。