c++ 運算子過載
阿新 • • 發佈:2021-02-15
技術標籤:C++
#pragma once class Complex { private : int nReal; int nImg; public: Complex(int r = 0, int i = 0); friend Complex operator+(Complex &c1, Complex &c2); friend Complex operator-(Complex& c1, Complex& c2); Complex operator++(int);//字尾 Complex operator++();//字首 Complex operator=(Complex& c1); void Print(); };
#include "Complex.h" #include <iostream> using namespace std; Complex::Complex(int r, int i) { nReal = r; nImg = i; } Complex Complex::operator++(int)//字尾 { int r = nReal++; int i = nImg++; return Complex(r,i); } Complex Complex::operator++()//字首 { ++nReal; ++nImg; return *this; } Complex Complex::operator=(Complex& c1) { nReal = c1.nReal; nImg = c1.nImg; return *this; } void Complex::Print() { cout << '(' << nReal << ',' << nImg << ')' << endl; } Complex operator+(Complex &c1, Complex &c2) { int r = c1.nReal + c2.nReal; int i = c1.nImg + c2.nImg; return Complex(r,i); } Complex operator-(Complex& c1, Complex& c2) { int r = c1.nReal - c2.nReal; int i = c2.nImg - c2.nImg; return Complex(r,i); }
// Test01.cpp : 此檔案包含 "main" 函式。程式執行將在此處開始並結束。
//
#include <iostream>
#include "Complex.h"
int main()
{
Complex c1(1, 2);
Complex c2 = c1++;
c2.Print();
c1.Print();
++c1;
c1.Print();
Complex c3 = c1 + c2;
c3.Print();
Complex c4 = c2 - c1;
c4.Print();
return 0;
}