首页 > > 内容页

C++--第二章(C过度到C++)

2023-03-18 17:53:59 来源:哔哩哔哩

1  例程

2 const 在C中修饰的是不能改变的量,不是常量,可以写成 const int a,因为只是声明一个变量。


(资料图片)

而C++中const要全局使用会被修饰成extern ,一般默认局部变量。

##声明:常量指针&指针常量&指向常量的常量指针

当然C++中const声明主要有三种:

1> 指向常量的指针 

const char * p = "cgc";  

该方法不允许改变指针变量,p[3]='h';是错的。

p = "wtl"; // 可以

可以改变p指向的地址,此处给了一个字符串地址。

2>常量指针  

char* const p = "abcd";

创建一个常指针,一个不能移动的固定指针,可更改内容。

p[3] = 'x';

但不能改变地址,p = 'dsff'; 错

3> 指向常量的指针

const char* const pc = "abcd";

内容和地址均不能改变,两个const限定死了。

const用于保证实参在该函数内不被改动。   

3 void型指针

任何类型的指针的值都可以赋给void类型的指针变量。

但已赋值的void型指针,要再进行显示转换

4内联函数:

inline,避免CPU开销。

可替代宏,宏节省调用时间但不安全。

内联函数中不能有复杂语句,for和while.....

适用于小型简单内联函数

5 自带默认参数

void intt(int a = 5, int b = 2){}

int main (){   

init (100, 1);

init (23);

init ();

}

从左自右将实参和形参结合,没有按默认值补齐。

所有默认值只能出现在不取值参数的右边

6 重载

只要形参不一样(个数、类型)就行。

返回值类型不在检测范围。下面就不行,不算重载

7 二义性

会出现二义性,避免出现二义性参考下图使用纯虚函数

或者使用类名::变量名显性访问

8 自动转换

short->int->float->double

9 作用域符

希望在局部变量的作用域内使用同名的全局变量,加上::,也是限定符

10 new&delete

int *p;

p = new int 

delete p;

创建时可直接分配

11引用

引用就是别名

#引用就是和原变量一个内存单元,不分配存储空间。

引用要初始化,要赋变量或者别的引用。&J = I

引用作为函数参数、使用引用返回值。

void不能用引用、数组不能引用、不能建立引用的引用、可以将引用地址赋值给指针,指针指向原来变量、可以结合const限定引用的值。

关键词:

Copyright ©  2015-2022 体育日报网版权所有  备案号: 浙ICP备2022016517号-29   联系邮箱:514 676 113@qq.com