C++语法2--函数过程

2374阅读 0评论2012-11-10 leon_yu
分类:LINUX

1.限于计算机的硬件资源和性能因素,递归调用的嵌套深度实在有限,所以逼近的速度应该比较现实。

2.函数重载

1C++编译器能够根据函数参数的类型、数量和排列顺序的差异,来区分同名函数,其技术成为重载。同名函数应该具有相同功能,这样可简化编程和增强程序可读性。

2)重载只匹配参数个数,顺序,类型,不区分返回类型

3C++按三个步骤匹配调用函数

①寻找一个严格匹配的,如果找到,就调用

②通过相容类型的隐式转换寻求一个匹配,如果找到,就调用

③通过用户定义的转换寻求一个匹配,若能找到唯一的,就调用

点击(此处)折叠或打开

  1. void print(double);
  2. void print(int);

  3. void func(){
  4.   print(1); //匹配void print(int);
  5.   print(1.0); //匹配void print(double);
  6.   print('a'); //匹配void print(int);
  7.   print(3.14159f);//匹配void print(double);
  8. }

当同时声明void print(float);void print(double)

调用时显示声明print(long(a)),或者print(double(a));

4)重载技术是用名称压轧技术来改变函数名而实现的。

3.默认参数:在给函数声明中使用默认参数,在调用时,对应的实参可以省略。其效果类似函数重载,但本质上是两回事。

4.效率就是如何在合理的空间占用下获得最有效的运行性能。

5.内敛函数

1)对函数的内敛声明必须在调用之前

2)适用场合

①函数体较小。

②程序中特别是循环中反复执行该函数。

③程序并不多出出现该函数调用。

6.程序员首选的方法是STL中,选择容器来存储数据,只有在很特别或很专业的情况下,才自己定义或派生容器数据类型。

 

7.

1)全局变量,一次定义,多出声明。

2)全局常量,在一个文件只能定义一次,但可以在多个文件重复定义。

3new申请的内存空间开始,一直到人为delet前,空间实体都有效,并且有效的堆空间实体可以被夸函数访问。


8.名空间

1)程序是跨文件的,名空间也是跨文件的;程序描述世界,名空间也对应整个世界。

2)局部名空间默认

点击(此处)折叠或打开

  1. #include <iostream>
  2.  using std::cout;
  3.  using std::endl;
  4.  int abs(int a){
  5.    return a>0?a:-a;
  6.  }
  7.  int main(){
  8.    int a = abs(-5);
  9.    int b = std::abs(-5);
  10.    cout<<a<<endl<<b<<endl;
  11.  }

9.

1)由于头文件可以嵌套,为了避免有些内容重复定义,最好使用#ifndef…#define…#endif

2)头文件卫视

点击(此处)折叠或打开

  1. #ifndef DATE
  2. #define DATE
  3. Struct Data{
  4.   Int year,month,day;
  5. }
  6. #endif

上一篇:C++语法1
下一篇:详解 ARM Linux启动过程分析