C++开篇

C++特点

是程序结构清晰、易于扩展、易于维护而不失效率

①面向对象;②很好的可重用性;③可读性更好,降低复杂性,增加的软件的可维护性;④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

using namespace std;

关于头文件:

#include 非标准输入输出流

#include 标准输入输出流

C++中为了避免名字定义冲突,特别引入了“名字空间的定义”,即namespace。

当代码中用时,输出可直接引用cout<继承C语言的标准库文件,未引入名字空间定义,所以可直接使用。

当代码中引入时,输出需要引用std::cout<

iostream.h是input output stream的简写,意思为标准的输入输出流头文件。它包含:

(1)cin>>"要输入的内容"

(2)cout<<"要输出的内容"

这两个输入输出的方法需要#include头文件来声明。

iostream 库的基础是两种命名为 istream 和 ostream 的类型,分别表示输入流和输出流。流是指要从某种 IO 设备上读出或写入的字符序列。

     关于命名空间参考以下链接:

c++ using namespace std;

const

 一、定义符号常量

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++的编译器自动的以缺省值作为相应的实际参数值。

#include
#include
void DrawCircle(int x,int y,int r=10)
{
    GCircle(x,y,r);
}
main
{
    DrawCircle(100,125);
    DrawCircle(70,25,20);    //画半径为20的圆
}

PS:如果给某个参数一个缺省值,那么其后的所有参数都需要赋给缺省值,否则编译时会出错。

函数名重载

在c++中允许两个或者两个以上的额函数使用相同的函数名,这种情况称为函数名重载。

在传统的C语言中,不允许出现名字相同的函数。例如:

int abs(int n);    //求整数的绝对值;

long labs(long n);    //求长整数的绝对值

double fabs(double n);   //求双精度数的绝对值

而在C++中: 

#include
using namespace std;

//Overload abs() three ways  重载函数名abs三次 
int abs(int n);
long abs(long n);
double abs(double n);
int main()
{
	int x1=-6;
	long x2=-61;
	double x3=6.6;
	cout<<"x1="<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;
}

优点:①实际参数的地址被自动传递,不需要记住传递参数的地址;②比指针参数方法更清晰、更简便。

2.函数返回引用

“<<”使用到函数返回引用;建立安全数组也需要返回引用。

3.独立引用

避免使用

你可能感兴趣的:(C++开篇)