运算符重载举例


运算符重载举例


1 #include <iostream>
2 #include <string>
3
4 using namespace std;
5
6 class T
7 {
8 public:
9 int getAge();
10 string getName();
11 setName(string name);
12 setAge(int age);
13 friend T& operator+(T& tL, T& tR);
14 T& operator=(T& tR)
15 {
16 name = tR.getName();
17 age = tR.getAge();
18 return *this;
19 }
20 T(){};
21 ~T(){};
22 protected:
23 private:
24 string name;
25 int age;
26 };
27
28 int main(int argc, char* argv[])
29 {
30 T t1,t2;
31 t1.setAge(10);
32 t2.setAge(20);
33 t1.setName("QQ");
34 t2.setName("YY");
35 cout<<t1.getName()<<" is "<<t1.getAge()<<" years old!"<<endl;
36 cout<<t2.getName()<<" is "<<t2.getAge()<<" years old!"<<endl;
37 t2 = t1 = t1+t2;
38 cout<<t1.getName()<<" is "<<t1.getAge()<<" years old!"<<endl;
39 cout<<t2.getName()<<" is "<<t2.getAge()<<" years old!"<<endl;
40 return 0;
41 }
42
43 T& operator+(T& tL, T& tR)
44 {
45 tL.setAge(tL.getAge()+tR.getAge());
46 tL.setName(tL.getName()+tR.getName());
47 return tL;
48 }
49
50 int T::getAge()
51 {
52 return age;
53 }
54
55 string T::getName()
56 {
57 return name;
58 }
59
60 T::setAge(int age)
61 {
62 this->age=age;
63 }
64
65 T::setName(string name)
66 {
67 this->name=name;
68 }

运算符重载举例

时间: 2024-11-17 04:10:14

运算符重载举例的相关文章

12--C++_运算符重载

C++_运算符重载 什么是运算符的重载? 运算符与类结合,产生新的含义. 为什么要引入运算符重载? 作用:为了实现类的多态性(多态是指一个函数名有多种含义) 怎么实现运算符的重载? 方式:类的成员函数 或 友元函数(类外的普通函数) 规则:不能重载的运算符有.  和 .* 和 ?: 和 ::  和 sizeof 和 typeid 友元函数和成员函数的使用场合: 一般情况下,建议一元运算符使用成员函数,二元运算符使用友元函数 1.运算符的操作需要修改类对象的状态,则使用成员函数.如需要做左值操作数

C++_运算符重载 总结

什么是运算符的重载? 运算符与类结合,产生新的含义. 为什么要引入运算符重载? 作用:为了实现类的多态性(多态是指一个函数名有多种含义) 怎么实现运算符的重载? 方式:类的成员函数 或 友元函数(类外的普通函数) 规则:不能重载的运算符有 .  和 .* 和 ?: 和 ::  和 sizeof 友元函数和成员函数的使用场合:一般情况下,建议一元运算符使用成员函数,二元运算符使用友元函数 1.运算符的操作需要修改类对象的状态,则使用成员函数.如需要做左值操作数的运算符(如=,+=,++) 2.运算

[转]C++之运算符重载(2)

上一节主要讲解了C++里运算符重载函数,在看了单目运算符(++)重载的示例后,也许有些朋友会问这样的问题.++自增运算符在C或C++中既可以放在操作数之前,也可以放在操作数之后,但是前置和后置的作用又是完全不同的(q前置运算符:先加1,再赋值:后置运算符:先赋值,再加1).那么要怎么重载它们,才可以有效的区分开来呢?今天我就来说说C++中是怎么处理前置运算符和后置运算符的重载的.以及介绍一下插入运算符(>>)和提取运算符(<<)的重载. 1.在C++里编译器是根据运算符重载函数参数

C++之运算符重载(2)

上一节主要讲解了C++里运算符重载函数,在看了单目运算符(++)重载的示例后,也许有些朋友会问这样的问题.++自增运算符在C或C++中既可以放在操作数之前,也可以放在操作数之后,但是前置和后置的作用又是完全不同的(q前置运算符:先加1,再赋值:后置运算符:先赋值,再加1).那么要怎么重载它们,才可以有效的区分开来呢?今天我就来说说C++中是怎么处理前置运算符和后置运算符的重载的.以及介绍一下插入运算符(>>)和提取运算符(<<)的重载. 1.在C++里编译器是根据运算符重载函数参数

初探C++运算符重载学习笔记&lt;1&gt;

运算符重载 含义: 对抽象数据类型也能够直接使用C++提供的运算符 对已有的运算符赋予多重的含义 使同一运算符针对不同的数据类型产生不同的行为 目的: -->扩展C++运算符的适用范围,以用于类所表示的抽象数据类型 -->程序更简洁 -->代码可读性更好 例如complex_a和complex_b是两个复数对象,如果求和,希望能直接写成 complex_a + complex_b  这样的形式. 实质: 函数重载 返回值类型 operator 运算符(参数表) { .... } 在函数编

初步C++运算符重载学习笔记&amp;lt;3&amp;gt; 增量递减运算符重载

初步C++运算符重载学习笔记<1> 初探C++运算符重载学习笔记<2> 重载为友元函数     增量.减量运算符++(--)分别有两种形式:前自增++i(自减--i).后自增i++(自减i--) 因此当我们重载该运算符时,要重载对应形式的运算符. T & operator ++() // 前自增++i T & operator ++(int) //后自增 i++ 举例: #include <iostream> using namespace std; c

细谈C++的运算符重载

什么是运算符重载? 顾名思义就是将原本的操作符以我们的方式定义出来,方便我们使用. 为什么要进行运算符重载? 简单的理由就是将减少程序员的工作量,首先先看一个简单的例子: class A{ public:     A(int data):data(data){};     void show(){         cout << "data = " << data << endl;     }    private:     int data; };

Python 3 之 运算符重载详解

基础知识 实际上,"运算符重载"只是意味着在类方法中拦截内置的操作--当类的实例出现在内置操作中,Python自动调用你的方法,并且你的方法的返回值变成了相应操作的结果.以下是对重载的关键概念的复习: 运算符重载让类拦截常规的Python运算. 类可重载所有Python表达式运算符 类可以重载打印.函数调用.属性点号运算等内置运算 重载使类实例的行为像内置类型. 重载是通过特殊名称的类方法来实现的. 换句话说,当类中提供了某个特殊名称的方法,在该类的实例出现在它们相关的表达式时,Pyt

c++运算符重载2

上一节主要讲解了C++里运算符重载函数,在看了单目运算符(++)重载的示例后,也许有些朋友会问这样的问题.++自增运算符在C或C++中既可以放在操作数之前,也可以放在操作数之后,但是前置和后置的作用又是完全不同的(q前置运算符:先加1,再赋值:后置运算符:先赋值,再加1).那么要怎么重载它们,才可以有效的区分开来呢?今天我就来说说C++中是怎么处理前置运算符和后置运算符的重载的.以及介绍一下插入运算符(>>)和提取运算符(<<)的重载. 1.在C++里编译器是根据运算符重载函数参数