是程序结构清晰、易于扩展、易于维护而不失效率
①面向对象;②很好的可重用性;③可读性更好,降低复杂性,增加的软件的可维护性;④c++中类的定义方式增加了数据隐藏性,具有很好的可靠性;⑤与C兼容。
c++语言中,必须给出函数的返回值类型。
c++中函数定义:
函数返回类型 函数名 形参类型 形式参数 形参类型 形式参数
int max ( int x , int y)
函数体:
{
int z;
if(x>y) z=x;
else z=y;
return (z);
}
调用函数时,实际参数的个数必须与形式参数的个数相等,实际参数的类型必须与其对应的形式参数类型匹配。
C++标准要求主函数main()的返回类型必须为整形int,可以使用return语句从main()中向操作系统返回一个整型值。
关于头文件:
#include
#include
C++中为了避免名字定义冲突,特别引入了“名字空间的定义”,即namespace。
当代码中用
当代码中引入 iostream.h是input output stream的简写,意思为标准的输入输出流头文件。它包含: (1)cin>>"要输入的内容" (2)cout<<"要输出的内容" 这两个输入输出的方法需要#include iostream 库的基础是两种命名为 istream 和 ostream 的类型,分别表示输入流和输出流。流是指要从某种 IO 设备上读出或写入的字符序列。 关于命名空间参考以下链接: c++ using namespace std; 一、定义符号常量 const float PI = 3.1415926; const itn x; //error 定义常量时应该赋值 二、修饰函数参数 通常,当一个函数不必修改调用参数指向的对象是,参数用const来修饰。 三、const和指针 char *const cp; //cp是一个常指针,指向字符串(地址不能被修改) char const* pc; //pc是一个指针,指向常量字符串(字符串不能被修改) const char* pc2; //pc2是一个指针,指向字符串常量(指针所指值不能被修改) 在函数声明或定义前面加上关键字inline,该函数就被声明为内联函数。 目的:提高程序的执行效率,消除函数调用的时间开销(保护现场、恢复现场),提高运行速度。PS:空间换时间,适合短小的函数作为内联函数。 inline是请求不是命令,编译程序可以忽略它。通常的编译器不会为下列情况的函数产生内联代码: ①含有static类型变量的函数。 ②递归函数。 ③包含循环的函数,或是具有switch或者goto语句的函数。 函数原型 函数返回值类型 函数名 函数参数及其类型的列表 int max (int a,int b) 函数返回值类型和函数参数的类型、个数、次序在函数声明、函数定义和函数调用时必须匹配。 c++的语法允许声明函数原型是省略参数名,例如 int max(int ,int ) 带缺省参数的函数 ①可以再函数原型中可以给参数赋值,这些值称为缺省值; ②函数调用时允许缺省部分或者全部实际参数,这时c++的编译器自动的以缺省值作为相应的实际参数值。 PS:如果给某个参数一个缺省值,那么其后的所有参数都需要赋给缺省值,否则编译时会出错。 函数名重载 在c++中允许两个或者两个以上的额函数使用相同的函数名,这种情况称为函数名重载。 在传统的C语言中,不允许出现名字相同的函数。例如: int abs(int n); //求整数的绝对值; long labs(long n); //求长整数的绝对值 double fabs(double n); //求双精度数的绝对值 而在C++中: 从上例看出只要记住一个函数名abs(),在参数表中代入相应实参,c++就会根据实参的类型来确定到底调用哪个重载函数。 PS:重载函数必须具有不同参数列表,即要么参数的类型不同或者参数个数不同。 例: void swap(int *x,int *y); void swap(double *x,double *y); or int myfunc(int i); int myfunc(int i,int j); PS:只有返回类型不同的函数不能重载。 例: int func(int i); double func(int i;) //error new/delete C中使用函数malloc()分配动态内存,free()释放动态内存。 c++中运算符new分配动态内存,delete释放动态内存。执行new操作时,如果有足够的内存空间,则按照要求从内存分配一块空间,new运算符返回指向该内存起始地址的指针;如果内存空间不够,则返回空(NULL)指针。delete运算符释放new运算符分配的动态内存。 PS:使用new申请的动态内存必须使用delete释放。 引用 在声明一个变量时,在变量名前民加上&九江该变量声明为一个引用。引用的最重要用法是作为函数参数。 1.引用作为函数参数 函数使用引用参数时是一种传址调用。 例: 优点:①实际参数的地址被自动传递,不需要记住传递参数的地址;②比指针参数方法更清晰、更简便。 2.函数返回引用 “<<”使用到函数返回引用;建立安全数组也需要返回引用。 3.独立引用 避免使用const
内联函数
#include
#include
void swap(int *x,int *y)
{
int temp;
temp=*x;
*x=*y;
*y=temp;
}
void swap(int &x,int &y)
{
int temp;
temp=x;
x=y;
y=temp;
}