一、C++初步知识
C语言是结构化和模块化的语言,是面向过程的。适用于处理小规模程序。
C++在C语言的基础上进行了拓展:
(1)在面向过程的机制基础上,对C语言的功能作了扩充。
(2)增加面向对象机制。
函数的重载:一个函数名多用。C++允许使用同名函数来实现不同的功能。
#includeusing namespace std; int max(int a,int b,int c) { if(b>a)a=b; if(c>a)a=c; return a; } float max(float a,float b,float c) { if(b>a)a=b; if(c>a)a=c; return a; } long max(long a,long b,long c) { if(b>a)a=b; if(c>a)a=c; return a; } int main() { int a,b,c; float d,e,f; long g,h,i; cin>>a>>b>>c; cin>>d>>e>>f; cin>>g>>h>>i; int m; m=max(a,b,c); cout<<"max_i="< 上述函数中,main函数3次调用max函数,max函数参数个数相同而类型不同。实际上,参数个数也可以不同。
PS:重载函数的参数个数或类型必须至少有一个不同,函数返回值的类型可以相同也可以不同。但不可以参数个数和类型都相同而只有返回值类型不同。
函数模板:建立一个通用函数。其函数类型和形参类型不具体指定,用一个虚拟类型来代表,这个通用函数就成为函数模板。
函数模板定义一般形式:
template
通用函数定义或
template
通用函数定义将上一个程序改为通过函数模板来实现。代码如下:
#includeusing namespace std; template //模板声明,其中T为类型参数 T max(T a,T b,T c) //定义一个通用函数,用T做虚拟的类型名 { if(b>a)a=b; if(c>a)a=c; return a; } int main() { int a,b,c; float d,e,f; long g,h,i; cin>>a>>b>>c; cin>>d>>e>>f; cin>>g>>h>>i; int m; m=max(a,b,c); //调用模板,此时T被int取代 cout<<"max_i="< 变量的引用
在C++中变量的“引用”就是变量的别名。
假如想给a取一个别名b:
int a;
int &b = a; //声明b是一个整形变量的引用变量,它被初始化为a。&是引用声明符
将引用作为函数参数
C++增加引用,主要是利用其作为函数参数,以扩充函数传递数据的功能。
C++调用函数时有两种数据传递的方式:将实参的值传给形参,行是实参的一个拷贝(传值方式调用);将实参的地址传给引用型形参,形参和实参是同一个变量(引用方式调用)。
对引用进一步说明:
1,不能建立void类型引用。
2,不能建立引用的数组。
3,可以将变量的引用地址赋给一个指针,此时指针指向的是原来的变量。
4,可以建立指针变量的引用。
5,可以用const对引用加以限定,不允许改变该引用的值。
6,可以用常量或表达式对引用进行初始化,此时必须用const做声明。
内置函数
编译时将所调用的函数代码嵌入到主调函数中,这种函数称为内置函数(又名内嵌函数,内联函数)。
内置函数示例:
#includeusing namespace std; inline int max(int a,int b,int c) //这是一个内置函数 { if(b>a)a=b; if(c>a)a=c; return a; } int main() { int i=7,j=10,k=33,m; m=max(i,j,k); cout<<"max="< 作用域运算符
C++提供作用域运算符“::”,它能指定所需要的作用域。
int main(
{int a=5;
cout<
cout<<::a<
}
字符串变量
C++可以使用字符串类型(string类型)定义字符串变量。
字符串操作如下:
string string1; //定义string1为字符串变量
string string2 = "china"; //定义string2同时对其初始化
string1 = string2; //字符串复制
string1 = string1 + string2; //字符串连接
string name[5]; //定义字符串数组
string name[5] = {“li”,"zhou","wu","chu","feng"}; //定义字符串数组并初始化
PS:字符串元素中只包含字符串本身而不包括“ ”。
动态分配/撤销内存的运算符new和delete
C语言中利用库函数malloc和free分配和撤销内存空间。
C++则提供了new和delete来取代malloc和free函数。
格式如下:
new 类型[初值]; //new分配数组空间时不能指定初值
delete[]指针变量



