C++ 宣告並實現一個複數類
<pre name="code" class="cpp">/****************************************************************************************** complex.hpp: Copyright (c) Bit Software, Inc.(2013), All rights reserved. Purpose: 宣告並實現一個複數類 難度:** Author: xxx Created Time: 2015-4-26 ******************************************************************************************/ #ifndef COMPLEX_HPP_INCLUDED #define COMPLEX_HPP_INCLUDED #include <iostream> using namespace std; class complex { public: // 帶預設值的建構函式 complex (double real = 0, double image = 0) :_real(real) ,_image(image) { cout<<"complex (double real = 0, double image = 0)"<<endl; } // 解構函式 ~complex() { cout<<"~complex()"<<endl; } // 拷貝建構函式 complex (const complex& d) :_image(d._image) ,_real(d._real) { cout<<"complex (const complex& d)"<<endl; } // 賦值運算子過載 // 思考為什麼operator=賦值函式需要一個date&的返回值?? complex& operator= (const complex& d) { cout<<"operator= (const complex& d)"<<endl; if (this != &d) { this->_real = d._real; this->_image = d._image; } return *this; } // 取地址運算子過載 complex* operator& () { cout<<"operator&()"<<endl; return this; } // const修飾的取地址運算子過載 const complex* operator& () const { cout<<"operator&() const"<<endl; return this; } void display() { cout<<"real:"<<_real<<"--image:"<<_image<<endl<<endl; } complex operator+(const complex& c) { cout<<"operator+(const complex& c)"<<endl; return complex(_real+c._real,_image+c._image); } complex operator-(const complex& c) { cout<<"operator-(const complex& c)"<<endl; return complex(_real-c._real,_image-c._image); } complex operator*(const complex& c) { cout<<"operator*(const complex& c)"<<endl; return complex(_real*c._real-_image*c._image,c._image*_real+_image*c._real); } complex operator/(const complex& c) { cout<<"operator/(const complex& c)"<<endl; return complex<span style="font-family: Arial, Helvetica, sans-serif;">((_real/c._real+_image*c._image)/(c,_real*c._real+c._image*c._image),(_image*c._real-_real*c._image)/(c,_real*c._real+c._image*c._image))</span><span style="font-family: Arial, Helvetica, sans-serif;">; </span> } private: double _real; double _image; }; #endif // COMPLEX_HPP_INCLUDED
主函式:
#include "complex.hpp" int main() { //test_complex1(); cout << "**********************" << endl; complex a(1.1,2.2); complex b(3.3,4.4); complex c; c = a + b; c.display(); c = a - b; c.display(); c = a * b; c.display(); c = a / b; c.display(); return 0; }
相關推薦
C++ 宣告並實現一個複數類
<pre name="code" class="cpp">/****************************************************************************************** complex.hp
C++ 宣告並實現一個日期類(運算子過載)
/****************************************************************************************** date.hpp: Copyright (c) Bit Software, Inc.(2
【C++】實現一個複數類(complex)(帶有預設引數的建構函式 )
/*實現一個複數類(complex) class complex { private: double _real; double _image; }; */ #include <iostream
C++實現一個複數類
#include <iostream> #include<stdlib.h> using namespace std; class Complex { public: Complex(double real, double ima
第七週上機任務三--實現一個複數類--通過模板類的技術手段,設計Complex,使實部和虛部的型別為定義物件時用的實際型別
/* (程式頭部註釋開始) * 程式的版權和版本宣告部分 * Copyright (c) 2011, 煙臺大學計算機學院學生 * All rights reserved. * 檔名稱:實現一個複數類,通過模板類的技術手段,設計Complex,使實部和虛部的型別為定義物
如何實現一個複數類
在c++中有6個預設的成員函式,分別是建構函式、拷貝建構函式、解構函式、賦值操作符過載、取地址操作符過載和const修飾的取地址操作符過載。在這篇文章中,我將通過實現複數類來對這幾個成員函式做一個簡單的說明。 1.建構函式 成員變數為私有的,要對它們進行初始
c++實現一個日期類
#pragma once #include <iostream> using namespace std; class Date { private: int _year; int _month; int _day; int GetMonthDa
用C/C++實現一個日期類,過載運算子=,==,+,-,++,--,>,>=,
#include<iostream> #include<windows.h> using namespace std; class Date { public: Date(int year, int month, int day) //建構函式
C#基礎-033 建立一個學員類,並設計三個欄位用於表示學生的成績(語文、數學、英語);然後定義一個數組表示一個班的學生(10人),依次輸入每個學生的資訊和成績,輸入的同時將學員的每科成績劃分等級
class Student { public double _chineseScore; public double _mathScore; pu
C++定義一個複數類Complex,過載運算子“+”,使之能用於複數的加法運算。將運算子函式過載為非成員、非友元的普通函式。編寫程式,求兩個複數之和。
#include <iostream> #include <iomanip> using namespace std; class Complex { public: Complex(); Complex(double r,do
用C++實現一個日期類
最近在複習C++的時候發現日期類是一個非常有用的類,在現實中是非常實用的(雖然我不知道為什麼這麼實用的類,庫裡沒有)以下是我自己實現的日期類的程式碼,因為大部分都是運算子的過載,所以理解起來應該並不難 #include <iostream> #include &
C#基礎-039 設計一個學生類Student和它的一個子類Undergraduate,並進行測試
(1)Student 類有 Name(姓名)和 Age(年齡)屬性,一個包含兩個引數的構造方法,用於給Name和Age屬性賦值,一個Show()方法列印Student的屬性資訊。 (2)本科生類Un
C++實現一個有理數類,包括大小比較,有理數的加減乘除。測試你的類。
//實現一個有理數類,包括大小比較,有理數的加減乘除。測試你的類。 #include <iostream> #include <stdlib.h> class Rational { public: Rational(int nu
建立一個complex包,包中定義一個複數類Complex,實現複數的加減乘法(包括其中有一個是實數的情況)以及相應的set /get方法,然後編寫另一個應用程式進行驗證包
1.public class ComplexTester{ 3. public static void main(String[] args) 4. { 5. Complex z1=new Complex(1,2); 6. C
C++實現一個string類
#include<iostream> using namespace std; class String { private: char * m_data; public:
定義一個複數類,用友元函式實現對雙目運算子“ + ”的運算子過載, 使其適用於複數運算
////定義一個複數類,用友元函式實現對雙目運算子“ + ”的運算子過載,////使其適用於複數運算//#include<iostream>using namespace std;class Complex{private:int real;int imag;pu
C++自己實現一個String類
rcp null 申請 vat delete col lse none private C++自己實現一個String類(構造函數、拷貝構造函數、析構函數和字符串賦值函數) #include <iostream> #include <cstr
C#使用Socket實現一個socket服務器與多個socket客戶端通信
當前 rec inf hide 負責 new 數據庫 class 多臺 在分布式調度系統中,如果要實現調度服務器與多臺計算節點服務器之間通信,采用socket來實現是一種實現方式,當然我們也可以通過數據存儲任務,子節點來完成任務,但是往往使用數據作為任務存儲都需要定制開
C++之自己實現的String類全部
efi char* 傳遞 light assign 關鍵字 flag pri ostream 一:回顧 (1)c++中的string類是在面試中和筆試中經常考的題目; 工程代碼免費下載 string類的自行實現 (2)c++中的string類和fstream類合起來是處理外
[python] 理解metaclass並實現一個簡單ORM框架
lds asc into password 這樣的 內容 建行 ati 什麽 metaclass 除了使用type()動態創建類以外,要控制類的創建行為,還可以使用metaclass。 metaclass,直譯為元類,簡單的解釋就是: 當我們定義了類以後,就可以根據這個