为了账号安全,请及时绑定邮箱和手机立即绑定

新手上路,C++ 类的操作符重载 operator A *() const,这个怎么调用感激不尽

/ 猿问

新手上路,C++ 类的操作符重载 operator A *() const,这个怎么调用感激不尽

MYYA 2019-08-14 20:41:10
classA{};
classB{
operatorA*()const{returnnewA();}
};
请问,怎么通过B类的实例调用“operatorA*()const”这个方法?
                    
查看完整描述

2 回答

?
斯蒂芬大帝
这个是自定义类型装换,在classB的对象需要转换为classA的指针(A*)的时候,使用这一函数。
classA{};
classB{
public:
operatorA*()const{
returnnewA;
}
};
intmain(){
Bz;
A*pa=z;//类型转化,由b转换为A*,调用B::operatorA*()const
return0;
}
                            
查看完整回答
反对 回复 2019-08-14
?
潇潇雨雨
*运算符作为单目运算符(取实例),放在操作数的左侧,调用时应该这样
Bx;
A*t=*x;
这样重载,看起来B的实例就是一个指针,运算符把指针转成一个实例,但这个实例是A的指针,所以B重载了运算符之后,B看起来就像是一个指向A的指针的指针。
                            
查看完整回答
反对 回复 2019-08-14

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信