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. ajax 多个setInterval进行ajax请求的页面长时间打开会出现页面卡死问题

     多个setInterval进行ajax请求的页面长时间打开会出现页面卡死问题 浏览器的渲染(UI)线程和js线程是互斥的,在执行js耗时操作时,页面渲染会被阻塞掉.当我们执行异步ajax的时候没有问 ...

  2. 【Selenium专题】WebDriver启动firefox浏览器

    firefox浏览器不需要下载驱动,原生支持,以下是代码运行环境,firefox启动封装在方法startFirefox()中 import org.openqa.selenium.WebDriver; ...

  3. 【Selenium专题】FAQ_浏览器_ChromeDriver版本导致报错

    报错信息 Started ChromeDriver port=31984 version=23.0.1240.0 log=C:\workspace\test\chromedriver.log [063 ...

  4. 910. Smallest Range II

    Given an array A of integers, for each integer A[i] we need to choose either x = -K or x = K, and ad ...

  5. ubuntu和centos安装docker

    一. UBUNTU系统上 1. 卸载旧版本(新系统不用执行) sudo apt-get remove docker docker-engine docker.io     2. 安装docker st ...

  6. css3里面的-webkit-transition

    css3里面的-webkit-transition (1)-webkit-transition-timing-function 可以定义动画的变化时间曲线-webkit-transition-timi ...

  7. Struts2与easyui分页查询

    easyui里面分页查询:在easyui框架里面已经进行一些分装,所以我们只要进行后台分页查询即可 web.xml和struts.xml文件的配置的就不需要我多说了,和分页前代码一样,不需要更改: 需 ...

  8. JAVA输入随笔

    做题时经常遇到输入的问题,很麻烦 写一点点自己对于输入的随笔,以备后查 这里都以整数为例,其他类型的话换成相应方法就行了 1.知道一共多少行,每一行只有一个整数 这是比较简单的输入,可以用Scanne ...

  9. leetcode-821-Shortest Distance to a Character

    题目描述: Given a string S and a character C, return an array of integers representing the shortest dist ...

  10. 关于web界面设计的整体可维护性的感悟

    1.表现与数据分开管理: 某些数据具备特殊的表现格式,比如颜色,大小等等.为了对这些格式表现分开管理进行 a.使用css定义该类型数据的表现形式: 定义数据的类别,通过该类别对数据格式进行统一定义 . ...