`
CrazyMizzz
  • 浏览: 24235 次
  • 性别: Icon_minigender_1
  • 来自: 浙江
社区版块
存档分类
最新评论

c++运算符重载

c++ 
阅读更多
一、加+,减-,乘*,除/ 的运算符重载

Rational operator*(const Rational &x) const{
return Rational(x.a * this->a);
}
在这里只写乘法的,加减除的写法类似

二、<<输出,>>输入的运算符重载
        friend ostream& operator<<(ostream &out, Rational x){
out <<x.a;
return out;
}
friend istream& operator>>(istream &in, Rational &x){
in >> x.a;
return in;
}

三、单目运算符 ++
(1)前置++  如++a的写法
        Rational &operator++(){
a++;
return *this;
}
(2)后置++  如a++的写法
        Rational operator++(int){
Rational t=*this;
++(*this);
return t;
}
四、判断==,自加+=,自减等
(1)判断对象是否相等
        bool operator==(const Rational &x)const{
if (x.a == this->a)
return true;
else
return false;
}
(2)+=运算符重载
        Rational operator +=(const Rational &x){
return Rational(this->a+=x.a);
}


以下是源代码












#include<iostream>
using namespace std;

class Rational
{
public:
Rational(int a=0):a(a){}
~Rational(){}
void show(){
cout << a;
}
Rational multiply(const Rational x) const{
return Rational(this->a*x.a);
}
friend Rational pluss(const Rational &x,const Rational &y) {
return Rational(y.a + x.a);
}
Rational operator*(const Rational &x) const{
return Rational(x.a * this->a);
}
friend Rational operator+(const Rational &x,const Rational &y){
return Rational(x.a + y.a);
}
friend ostream& operator<<(ostream &out, Rational x){
out <<x.a;
return out;
}
friend istream& operator>>(istream &in, Rational &x){
in >> x.a;
return in;
}
Rational &operator++(){
a++;
return *this;
}
Rational operator++(int){
Rational t=*this;
++(*this);
return t;
}
bool operator==(const Rational &x)const{
if (x.a == this->a)
return true;
else
return false;
}
Rational operator +=(const Rational &x){
return Rational(this->a+=x.a);
}
private:
int a;
};
int main(){
int a, b;
while (true){
cout << "******************************" << endl;
Rational x, y, c;
cout << "用operator重载输入" << endl;
cin >> x >> y;
cout << "用multiply成员函数计算乘法" << endl;
cout << "a*b=";
c = x.multiply(y);
c.show();
cout << endl;
cout << "用友元plus成员函数计算乘法" << endl;
cout << "a+b=";
c = pluss(x,y);
c.show();
cout << endl;
cout << "用operator运算符重载计算乘法" << endl;
cout << "a*b=";
c = x*y;
c.show();
cout << endl;
cout << "用友元operator运算符重载计算加法" << endl;
cout << "a+b=";
c = x + y;
c.show();
cout << endl;
cout << "用operator运算符重载输出流" << endl;
cout << "a+b=";
c = x + y;
cout << c<<endl;




}
return 0;
}
分享到:
评论

相关推荐

    C++运算符重载友元函数实例

    在给定的实例中,你将学习如何实际应用这些概念,通过成员函数和非成员函数重载C++运算符,以及如何使用友元函数来实现特定的运算行为。通过练习和理解这些例子,你将更好地掌握C++中运算符重载和友元函数的使用。

    C++运算符重载 详细介绍PPT

    详细介绍 C++运算符重载 的PPT 文中部分内容: 下标运算符“[ ]”重载 C++把下标运算符[ ]看成一个双目运算符,其操作数为&lt;基本表达式&gt;和&lt;表达式&gt;,对应的运算符为operator[ ],必须重载为一个成员函数。对于下标...

    C++运算符重载规则详解

    C++允许重载的运算符和不允许...C++运算符重载的规则 C++对运算符重载定义了如下几条规则。 1) C++不允许用户自己定义新的运算符,只能对已有的C++运算符进行重载。 例如,有人觉得BASIC中用“**“作为幂运算符很方便

    C++运算符重载课件PPT及实例

    在C++编程语言中,运算符重载是一个关键特性,它允许我们为已存在的运算符赋予新的含义,以便在自定义类型上使用...通过对C++运算符重载的深入理解和实践,你可以编写出更加自然、直观的代码,提升代码质量和可维护性。

    C++运算符重载课件

    中国农业大学C++课程课件,信息与电气工程学院学生专用。

    visuall C++ 运算符重载详细总结

    "Visual C++ 运算符重载详细总结" Visual C++ 运算符重载是指在 C++ 编程语言中对已有的运算符进行重新定义,以适应自定义的数据类型和操作。这种技术可以使得程序员能够使用熟悉的运算符来操作自定义的数据类型,...

    c++运算符重载矩阵运算

    "c++运算符重载矩阵运算" c++运算符重载矩阵运算是指在c++语言中对矩阵进行运算的操作,包括加、减、乘、转置、赋值等操作。这些操作都是通过重载运算符来实现的。 首先,我们需要定义一个Matrix类,该类有三个...

    C++运算符重载的课件

    C++运算符重载的课件 C++运算符重载是C++程序设计中一个非常重要的概念,它允许用户自定义的数据类型以一种更简洁的方式工作,使得代码更加简洁易读。运算符重载使得用户可以定义自己的运算符,以便更好地描述问题...

    C++运算符重载教学和编程中易被忽视的问题

    ### C++运算符重载教学和编程中易被忽视的问题 #### 1. 二元运算符重载为类成员函数时易忽视的问题及解决方法 以复数类为例,在实现复数相加的过程中,很容易忽略一个重要的设计原则:**当一个二元运算符(如加法...

    C++运算符重载函数作为类成员函数和友元函数.doc

    C++运算符重载函数作为类成员函数和友元函数 C++运算符重载函数是定义一个重载运算符的函数,在需要执行被重载的运算符时,系统就自动调用该函数,以实现相应的运算。运算符重载实质上是函数的重载。重载运算符的...

    P121~126C++类和对象C++运算符重载学习笔记.docx

    C++运算符重载学习笔记 C++类和对象是面向对象编程的基础概念。运算符重载是C++中的一种重要机制,允许开发者重新定义已有的运算符,赋予其新的功能,以适应不同的数据类型。在本文中,我们将详细介绍C++运算符重载...

    c++运算符重载,重载运算符

    ### C++运算符重载详解 #### 一、前言 C++允许用户自定义类或结构体,并为这些类型重载内置运算符,从而使得这些类型能够像内置类型一样使用标准运算符进行操作。本篇文章将通过三个具体的示例来深入探讨C++中的...

    C++运算符重载三种形式1

    C++运算符重载是C++中一个强大的特性,它允许程序员为自定义类型定义运算符的行为。在C++中,运算符重载有三种主要形式:成员函数、友元函数以及普通函数。每种形式都有其特定的使用场景和优缺点。 1. 成员函数重载...

    C++运算符重载.ppt

    C++运算符重载 C++语言提供了运算符重载机制,允许程序员对已有的运算符赋予新的含义,使其应用于用户自定义的类。运算符重载是对已有的运算符赋予多重含义,同时保持其原有的优先级和结合性。 什么是运算符重载?...

    C++ 运算符重载

    C++ 运算符重载 本节主要介绍 C++ 运算符重载的概念、语法和应用。运算符重载是 C++ 的一个重要特性,允许开发者重新定义运算符的行为,以适应不同的需求。 首先,运算符重载的语法形式如下:返回类型 operator@...

    C++运算符重载

    C++运算符重载:赋予运算符另一种作用,实现自定义类型的运算C++运算符重载内容: 1.友元重载 2.类重载 3.输入输出流重载

    使用C++实现矩阵运算(运算符重载)

    首先,我们要理解C++中的运算符重载。运算符重载允许我们在不同的上下文中为同一个运算符赋予不同的含义,这在处理自定义数据类型如矩阵时非常有用。例如,我们可以通过重载"+"运算符来实现矩阵的相加,重载"-...

Global site tag (gtag.js) - Google Analytics