C++之再续前缘(一)——C++基础(与C语言的差异)(下)

1.void型指针

  void本身是一种数据类型,通常表示无值,不能声明void类型的变量,但是可以声明void类型的指针,

  void*类型的指针表示不确定的类型,是一种通用型的指针,也就是说任何类型的指针都可以付给void类型的指针变量

  例如:int  p;

    char a;

    void* x;

    x=&p;

    x=&a;

  同时,在进行输出的时候,void*类型必须进行强制类型转换

 

2.内联函数

  inline double circle(double r)

  1.使用内联函数是为了消除#define的不安全性

  2.使用内联函数需要注意的几点

    1.调用前必须有完整的定义(声明必须完整,若无声明,定义必须在前面,否则编译器将无法知道应该插入什么代码)

    2.内联函数以时间换空间,因此尽量避免使用复杂语句(for ,switch while等等),且代码不要过长

 

 

3.带默认参数的函数

 void Init(int x,int y=5);

带默认值的必须在无默认值的后面

对应的,在传递实参时

Init(3)

而不能出现func(,20)

 

4.函数重载:函数参数类型不同或函数参数个数不同,或者两者都有

 

注意!!!

1.如果两个函数除了函数返回类型其他的都相同,那么他们不算重载,这样写是错误的

在调用时无法区分应该调用哪一个函数

double mul(int x,int y)

int mul(int x,int y)

 

2.函数重载与代拟任职的参数一起使用,可能会有二义性

 

5.作用域标识符::

  用于在局部作用域中使用被自动隐藏的同名全局变量

6.强制类型转换

  (double)x;

7.new 和delete

p=new int

8.引用

 

暂时不想写了,特么的,好烦

 

posted @ 2016-04-12 22:09  LT.C#  阅读(147)  评论(0编辑  收藏  举报