类型转换、友元函数

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不一定是朋友
        
        
        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值