关闭

C++重载运算符需要是const的情况

874人阅读 评论(0) 收藏 举报
分类:
#include <iostream>
class twelfth_class_1{
int i;
public:
twelfth_class_1(int ii=0 ){
i = ii;
}
const twelfth_class_1 operator+(const twelfth_class_1 &tc1)const {
twelfth_class_1 x(this->i+tc1.i);
return x;
}

const twelfth_class_1 operator-(const twelfth_class_1 &tc1)const{
twelfth_class_1 x(this->i-tc1.i);
return x;
}
friend std::ostream& operator<<(std::ostream&os,twelfth_class_1& tc1);
};
inline std::ostream& operator<<(std::ostream&os,twelfth_class_1& tc1){
return os<<"twelfth_class_1对象的值为"<<tc1.i;

}

int main{

      twelfth_class_1 tc1(521);
cout<<tc1<<endl;
twelfth_class_1 tc2(123);
twelfth_class_1 tc3 = tc1+tc2;
cout<<tc3<<endl;
twelfth_class_1 tc4 = tc1-tc2;
cout<<tc4<<endl;
twelfth_class_1 tc5 = tc1+tc2-tc4;//tc1+tc2产生一个临时变量,const只能调用const函数
//所以这里的+与-必须为const 不然编译器会报错。

}

0
1
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Const 重载解析(const参数重载 和 const成员函数重载)

书上和网上在很多地方都对const 的重载做了一些解释,但感觉都不是很详细。还有很多同学在不同的地方发问关于const 重载的问题,这里我又重新看了一下,做了一个简单的分析也可能有不对的地方,欢迎讨论...
  • net_assassin
  • net_assassin
  • 2013-08-16 10:26
  • 4345

【运算符重载-数组类运算的实现】

/* Copyright (c) 2016* All rights reserved 烟台大学计算机与控制工程学院 * 文件名称:3.cpp * 作者:刘丽 * 完成日期...
  • LLmuggles
  • LLmuggles
  • 2016-05-26 20:00
  • 1338

String系列——运算符重载

本节实现所有运算符的重载。意图很简单,对于运算符重载不清楚的可以查看相关运算符重载的写法。
  • z702143700
  • z702143700
  • 2015-07-31 10:26
  • 1276

c++ 运算符重载和转换

总结和演示了常见运算符重载的方法和注意事项,可供需要时查阅。
  • wenzhou1219
  • wenzhou1219
  • 2016-06-05 17:40
  • 777

函数重载之const

我们知道,如果函数名相同,在相同的作用域内,其参数类型、参数个数,参数顺序不同等能构成函数重载。有趣的是如果同时在类中,对于函数名相同的const函数和非const函数能够构成重载,同时它们被调用的时...
  • Sun19910114
  • Sun19910114
  • 2014-10-13 20:36
  • 990

C++operator重载问题

operator是C++的关键字,它和运算符一起使用,表示一个运算符函数,理解时应将operator=整体上视为一个函数名。    这是C++扩展运算符功能的方法,虽然样子古怪,但也可以理解:一...
  • u014136161
  • u014136161
  • 2016-08-25 22:38
  • 1609

C++函数重载(3) - 函数重载中的const关键字

const可用于重载成员函数 参考下面程序的输出: #include using namespace std; class Test { protected: int x; p...
  • shltsh
  • shltsh
  • 2015-05-24 00:50
  • 1628

第十一章:运算符重载,友元函数,重载<<运算符,类的自动转换和强制类型转换

运算符重载 1、什么是运算符重载 运算符重载也就是同一个运算符在不同的运算表达式中表示的含义不一样,也就是实现的功能不一样。 比如:2*3 = 6,*号实现的功能是将两个整数相乘。int num...
  • yaoxiaokui
  • yaoxiaokui
  • 2015-07-16 21:34
  • 374

C++_运算符重载_前缀自增与后缀自增

由于前缀自增与后缀自增在如果通过运算符重载在形式上相同,都为 以Date类为例 Date& operator++(Date &)(全局函数)/ Date& operator++( )(成员函数)无法区...
  • u010003835
  • u010003835
  • 2015-08-06 18:16
  • 2650

C++运算符重载(11) - 重载<<和>>操作符

运算符 “>”用于流输出。 在开始重载这些操作符之前,必须注意下面的事项: 1) cout是输出类的对象,而cin是输入类的对象 2) 这些操作符必须重载为全局函数。如果想要让它们可以访问私有成员,...
  • shltsh
  • shltsh
  • 2015-05-27 00:11
  • 760
    个人资料
    • 访问:7399次
    • 积分:477
    • 等级:
    • 排名:千里之外
    • 原创:42篇
    • 转载:2篇
    • 译文:0篇
    • 评论:0条