IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 重载运算符c++ -> 正文阅读

[C++知识库]重载运算符c++

一元运算符

[]

来源: https://www.runoob.com/cplusplus/unary-operators-overloading.html

#include <iostream>
using namespace std;
 
class Distance
{
   private:
      int feet;             // 0 到无穷
      int inches;           // 0 到 12
   public:
      // 所需的构造函数
      Distance(){
         feet = 0;
         inches = 0;
      }
      Distance(int f, int i){
         feet = f;
         inches = i;
      }
      // 显示距离的方法
      void displayDistance()
      {
         cout << "F: " << feet << " I:" << inches <<endl;
      }
      // 重载负运算符( - )
      Distance operator- ()  
      {
         feet = -feet;
         inches = -inches;
         return Distance(feet, inches);
      }
};
int main()
{
   Distance D1(11, 10), D2(-5, 11);
 
   -D1;                     // 取相反数
   D1.displayDistance();    // 距离 D1
 
   -D2;                     // 取相反数
   D2.displayDistance();    // 距离 D2
 
   return 0;
}



()

来源: https://www.jianshu.com/p/d3b132f6de2c

class FuncClass
{
public:
    void operator()(const string& str) const
    {
        std::cout << str << std::endl;
    }
}; 
int main() 
{ 
    FuncClass myFuncClass; 
    myFuncClass("hello world"); 
}



二元运算符

+, 输入输出流

来源: 谭浩强 c++程序设计第三版 p316

#include <iostream>
using namespace std;

class Complex {
public:
	Complex();
	Complex(double r, double i);
	
	Complex operator+(Complex& c2);
	
	friend istream& operator << (istream&, Complex&);
	friend ostream& operator >> (ostream&, Complex&);

	double real;
	double imag;
};

Complex::Complex()  {
	real = 0;
	imag = 0;
}

Complex::Complex(double r, double i) {
	real = r;
	imag = i;
}

istream& operator >> (istream& input, Complex& c) {
	cout << "input real part and imaginary part of complex number:"<< endl;
	input >> c.real >> c.imag;
	return input;
}

ostream& operator << (ostream& output, Complex& c) {
	output << "(" << c.real << "+" << c.imag << "i)";
	return output;
}

int main() {
	Complex c1, c2;
	cin >> c1 >> c2;
	cout << "c1= " << c1 << endl;
	cout << "c2= " << c2 << endl;
}



转换构造函数

来源: 谭浩强 c++程序设计第三版 p323

#include <iostream>
using namespace std;

class Complex{
public:
	Complex();
	Complex(double r, double i);
	operator double();
	
	double real;
	double imag;
};

Complex::Complex() {
	real = 0;
	imag = 0;
}

Complex::Complex(double r, double i) {
	real = r;
	imag = i;
}

Complex::operator double(){
	return real;
}

int main() {
	Complex c1(3, -4);
	double d;
	d = 2.5 + c1;
	cout << d << endl;
}



更多

https://www.runoob.com/cplusplus/cpp-overloading.html
在这里插入图片描述

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-07-15 15:59:28  更:2021-07-15 15:59:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/24 11:25:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码