9.类型转换
1.static_cast<目标类型>(表达式) 用于基本类型之间的转换,如:int,short,char,long... 可以把void *转成任意类型的指针 int--->double double---->int char --->int enum --->int eg:double a = 1.222; int b = static_cast<int>(a); 2.const_cast<目标类型>(表达式) 用于移除指针/引用的CV属性(const/volatile) eg:const int x = 10; // x 是一个常量整数 int* ptr = const_cast<int*>(&x); 3.reinterpret_cast<目标类型>(表达式) 用于任意类型的指针之间的转换/用于整数和指针之间的转换 int *--->double * char *--->int * 整数和指针转换 int --->int * int *---->int eg:int a[4] = {65,66,67,68}; int *p = a; char *p1 = reinterpret_cast<char *>(p); 4.dynamic_cast<目标类型>(表达式) 基类和派生类之间的转换,而且必须包含虚函数,否则编译不通过
字符串类:这边给出网址可以参考使用 cppreference.com cppreference.com
10.友元函数
友元声明:friend 返回值类型 函数名(参数); 友元声明:friend 返回值类型 类名::函数名(参数); 友元类的声明:friend class 类名; 注意: 1.因为友元不是授权类的成员,所以它不受所在类声明(public,private,protected)区域的影响,但是我们通常把所有的友元声明组织到一起,放到类的开始 2.友元声明以friend关键字开始,它只能出现在类的定义中,因为它的目的是声明某一个类或者函数是它的朋友 3.友元关系是单向的,A 是 B 的朋友 ==》 A 可以访问 B 的成员, B 不一定可以 访问 A 的成员 4.友元关系是不可传递的,类A把类B当做朋友,类B把类C当做朋友,类A和类C不一定是朋友