C++类型转换运算符的重载,自增自减运算符的重载

本文详细介绍了C++中如何重载类型转换运算符和自增自减运算符。通过示例代码展示了如何在类中实现这些运算符的重载,包括显式和隐式转换,并讨论了重载时应注意的事项,如避免不必要的隐式转换。此外,还强调了运算符重载的原则和限制,如保持原有运算符的含义和优先级不变。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

​  C++里面各种各样的运算符都可以拿来重载,虽然不是所有的运算符都可以重载,但是绝大部分都是可以重载的,比方说这个类型转换运算符的重载,自增自减运算符的重载.

C++类型转换运算符的重载

我们知道C++中内置的一些类型之间是可以相互装换的:

int a;
double b=3.14;
a=(double)b3;

我们希望自己写的类也可以进行类型转化

(1)将其他类型转换为我们写的类类型:只需要在构造函数中添加该类型的参数,然后将该参数的值赋给成员变量

class Person
{
public:
    int age;
    Person(int i=0):age(i){
    }
};
Person p;
p = (Person)4;

(2)将自己的类类型转化为其他类型,需要重载类类型操作符,函数形式如:operator 类型名称() const{返回其他类型的变量}

class Person
{
public:
    int age;
    operator int() const{
        return age;
    }
};
 Person p;
 p.age = 12;
 int a = (int)p;

上面的转换都是显示的转换,也可以写成隐式转换,Person p;p = 4;和Person p;p.age=12;int a = p;

这样直接的隐式转换有时候会在我们不经意间就实现了,甚至我们本不想让其进行转换,所以为了避免这种情况。C++允许在上面的构造函数或者重载类类型的方法前面加上explicit关键字,之后就不能进行隐式的类型转换了。

自增自减运算符的重载:

  自增和自减代表着哪两个运算符呢?

  自增:变量名"++"

  自减:变量名"- -"

  我们都知道自增运算符++、自减运算符--有前置/后置之分,为了区分所重载的是前,置运算符还是后置运算符,C++规定:

前置运算符作为一元运算符重载
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

龙星尘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值