C++重载运算符


layout: post
categories:

  • C++
    tags: C++

C++重载运算符

下面是重载+法的一个例子
//main.cpp
#include <iostream>
#include "characters.h"
int main() {
    character p=character('b');
    character q=character('f');
    character w=p+q;
    w.show();
    return 0;
}

//
// Created by kisara on 2020/2/2.
//
#include <iostream>
#include "characters.h"
character::character() {
    this->c='0';
}
character::character(char c) {
    this->c=c;
}
character character::operator+(const character &a) const {
    character temp;
    temp.c=a.c+this->c-'a';
    return temp;
}
void character::show() {
    std::cout<<this->c;
}
//
// Created by kisara on 2020/2/2.
//

#ifndef OPERATOR_OVERLOAD_CHARACTERS_H
#define OPERATOR_OVERLOAD_CHARACTERS_H

class character {
private:
    char c;
public:
    character();
    character(char c);
    character operator+(const character &a)const ;
    void show();
};


#endif //OPERATOR_OVERLOAD_CHARACTERS_H

1.重载后的运算符必须至少有一个操作数是用户定义的数据,这将防止用户为标准类型重载运算符,因此,不能将减法运算符(-)重载为计算两个double的和,而不是他们的差。虽然这种限制将对创造性有所影响,但可以确保程序正常运行

2.使用运算符时不能违反运算符原来的句法规则。例如不能将球磨运算符(%)重载成使用一个操作数

3.不能创建新运算符。例如不能用operator**()函数来表示求幂

4一些特定的运算符不能重载

sizeof运算符
**.**运算符

等等此处不一一列举了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值