Complex.h

 #pragma once
#include <iostream> using namespace std;
//表示一个复数
class Complex
{
private:
double x, y;
public:
Complex(); //默认构造函数
Complex(double x, double y); //构造函数重载
Complex operator+(Complex & cmx) const; //'+'号运算符重载
Complex operator-(Complex & cmx) const; //'-'号运算符重载
Complex operator*(Complex & cmx) const; //'*'号运算符重载
Complex operator/(Complex & cmx) const; //'/'号运算符重载
Complex operator~() const; //'~'号运算符重载
Complex operator*(double & n) const; //'*'号运算符重载
friend Complex operator*(double & n, Complex & cmx); //友元函数,可用于表示[4.0*Complex类型]
friend ostream & operator<<(ostream & os, Complex & cmx); //友元函数,可用于表示[cout << Complex类型]
~Complex();
};

Complex.cpp

 #include "Complex.h"

 Complex::Complex()
{
} Complex::Complex(double x, double y)
{
this->x = x;
this->y = y;
} Complex Complex::operator+(Complex & cmx) const
{
return Complex(x + cmx.x, y + cmx.y);
} Complex Complex::operator-(Complex & cmx) const
{
return Complex(x - cmx.x, y - cmx.y);
} Complex Complex::operator*(Complex & cmx) const
{
return Complex(x*cmx.x, y*cmx.y);
} Complex Complex::operator/(Complex & cmx) const
{
return Complex(x / cmx.x, y / cmx.y);
} Complex Complex::operator~() const
{
return Complex(x, -y);
} Complex Complex::operator*(double & n) const
{
return Complex(x*n, y*n);
} Complex operator*(double & n, Complex & cmx)
{
return cmx*n;
} ostream & operator<<(ostream & os, Complex & cmx)
{
os << cmx.x << "," << cmx.y << endl;
return os;
} Complex::~Complex()
{
}

C++运行符重载、友元函数的更多相关文章

  1. C++基础——运算符重载友元函数示例

    一.前言 其实本人学习C++的目的,只是为了体会OOP设计思想,并为利用System Verilog验证复杂设计做准备.如果想要真正做点软件方面项目级的东西,还需要掌握其他高级语言和库.框架等知识.因 ...

  2. C++ 类 & 对象-类成员函数-类访问修饰符-C++ 友元函数-构造函数 & 析构函数-C++ 拷贝构造函数

    C++ 类成员函数 成员函数可以定义在类定义内部,或者单独使用范围解析运算符 :: 来定义. 需要强调一点,在 :: 运算符之前必须使用类名.调用成员函数是在对象上使用点运算符(.),这样它就能操作与 ...

  3. c++面向对象 之 基础 类修饰符 构造函数 友元函数

    1,类和对象 定义一个类,本质上是定义一个数据类型的蓝图.这实际上并没有定义任何数据,但它定义了类的名称意味着什么,也就是说,它定义了类的对象包括了什么,以及可以在这个对象上执行哪些操作. 类定义格式 ...

  4. C++运算符重载(友元函数方式)

    我们知道,C++中的运算符重载有两种形式:①重载为类的成员函数(见C++运算符重载(成员函数方式)),②重载为类的友元函数. 当重载友元函数时,将没有隐含的参数this指针.这样,对双目运算符,友元函 ...

  5. C++ 类模板二(类模版与友元函数)

    //类模版与友元函数 #include<iostream> using namespace std; template<typename T> class Complex{ p ...

  6. C++重载(主要介绍使用友元函数重载)

    重载限制 多数C++运算符都可以用下面的方式重载.重载的运算符不必是成员函数,但必须至少有一个操作数是用户自定义的类型.下面详细介绍C++对用户定义的运算符重载的限制. 1 重载后的运算符必须至少有一 ...

  7. C++运算符重载三种形式(成员函数,友元函数,普通函数)详解

    首先,介绍三种重载方式: //作为成员函数重载(常见) class Person{ Private: string name; int age; public: Person(const char* ...

  8. C++ 学习笔记(五)类的知识小结一(重载,友元函数,静态成员,new)

    ---恢复内容开始--- 学习C++类知识点还是挺多的,每个知识点学习的时候都觉得这个知识点咋那么多东西,其实真学完了再回头看好像也就那么点.这次用程序写一个黑猫揍白猫的故事总结一下这段时间学习的零碎 ...

  9. 重载运算符:类成员函数or友元函数

    类成员函数: bool operator ==(const point &a)const { return x==a.x; } 友元函数: friend bool operator ==(co ...

随机推荐

  1. 2018-12-20 第一章初识JAVA-上机

    JAVA初体验之课后练习 一.请写出Java 程序执行过程与编译原理 答:①执行过程:创建.java文件——编译器(JDK环境里的javac.exe文件编译)——输出.class供计算机接受(只有cl ...

  2. dict字典;dict的操作

    一.字典: 1. 字典 dict 用{}来表示 键值对数据 {key:value} 唯一性 键   都必须是可哈希的 不可变的数据类型就可以当做字典中的键 值   没有任何限制 1.1  字典的创建: ...

  3. 【SSO单点系列】开篇

    年底将至,忙碌了好几个月的项目也接近尾声了.在这个项目中,由于要和其他外系统做单点登录(SSO),整合其他系统的功能.在网上查询了相关资料后,最终选取了Yale大学发起的一个开源项目 CAS, 作为项 ...

  4. jquery事件三 -- load(), ready(), resize()以及bind()事件

    例子1 ready() DOM加载完毕 load() 元素加载完毕 resize() 浏览器窗口的大小发生变化 <!DOCTYPE html> <html lang="en ...

  5. software installing

    <1>.Apache防火墙配置 firewall-cmd --add-service=http firewall-cmd --add-service=https 防火墙通过80和443端口 ...

  6. git 克隆 提交本地修改到远程方法

    最近一个项目,提交总报错 按照下面的流程就ok了 $ git clone $ git init $ cd shop $ git branch -al //查看所有分支 $ git pull origi ...

  7. TP5.0学习历程(1)

    验证码的使用 控制器代码如下: $captcha = new \think\captcha\Captcha();         if (!$captcha->check($data['code ...

  8. 怎么使用Vue-cli3开发像iview、element那样的组件可下载直接使用

    https://www.cnblogs.com/wisewrong/archive/2018/12/28/10186611.html 参考这个就行. 而我这篇文章主要是对里面的相关步骤作一些简单的说明 ...

  9. MySql安装错误代码1045的解决方案

    1.MySql安装错误代码1045的解决方案 2.root密码忘记1045的解决方案 错误代码 1045 Access denied for user 'root'@'localhost' (usin ...

  10. php引擎文件php.ini优化参数

    无论是Apache环境还是nginx环境,php.ini都适合,php-fpm.conf适合nginx+fcgi的配置. 生产环境php.ini(php.ini-production) php.ini ...