本文介绍: 转换操作符是一种特殊的类成员函数它定义将类类型值转变为其他类型值的转换这里,type表示内置类型名、类类型名 或 由类型别名所定义的名字,本文讨论转换普通函数指针类型、类的静态函数指针类型以及转换类的成员函数指针类型。
一、转换操作符的定义
转换操作符是一种特殊的类成员函数 ,它定义将类类型值转变为其他类型值的转换,转换操作符在类定义体内声明,在保留字operator之后跟着转换的目标类型,转换函数采用如下通用形式:
这里,type表示内置类型名、类类型名 或 由类型别名所定义的名字,本文讨论转换普通函数指针类型、转换类的成员函数指针类型
二、转换普通函数指针类型
在类内定义类型别名,定义转换函数,把类对象转换为普通函数指针,代码如下:
三、转换类的静态函数为普通函数指针类型
因为运算符的优先级,函数指针解引用要加括号
四、转换类的成员函数指针类型
.*和->*两个操作符,能够将成员指针绑定到实际对象,左操作数必须是类类型的对象或类类型的指针,右操作数是该类型的成员指针
可以把私有的成员函数转换为成员函数指针,因为转换函数是公有的,转换函数可以在类内访问私有成员,我们把对象转换一下,达到了对象可以调用私有的成员函数目的,看起来真的好神奇
五、成员函数指针作为函数的参数,类对象隐式转换
六、不用转换操作符,只用公有的成员函数指针变量,对象一样可以访问私有成员函数
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。