定義一個複數類,用友元函式實現對雙目運算子“ + ”的運算子過載, 使其適用於複數運算
////使其適用於複數運算
//
#include<iostream>using namespace std;
class Complex
{
private:
int real;
int imag;
public:
Complex()
{
real = 0;
imag = 0;
}
Complex(int r, int i) :real(r), imag(r) {};
friend Complex operator+(Complex &c1, Complex &c2);
void display();
};
void Complex::display(){
cout << "real=" << real << endl;
cout << "imag=" << imag << endl;
}
Complex operator+(Complex &c1, Complex &c2)
{
return Complex(c1.real + c2.real, c1.imag + c2.imag);
}
int main()
{
Complex c1(3, 4);
Complex c2(5, 8);
Complex c3;
c3 = c1 + c2;
c3.display();
return 0;
}
相關推薦
定義一個複數類,用友元函式實現對雙目運算子“ + ”的運算子過載, 使其適用於複數運算
////定義一個複數類,用友元函式實現對雙目運算子“ + ”的運算子過載,////使其適用於複數運算//#include<iostream>using namespace std;class Complex{private:int real;int imag;pu
學生類,含學生姓名與成績,用友元函式訪問私有成員,對兩個物件的成績進行比較。(2018.9.19 c++作業)
定義兩個物件,與一個友元函式(使用c++中引用傳遞的方式,實現引數的傳遞) #include using namespace std; class student { private: char name[20]; float grade; public: s
模板類中使用友元函式的方式,派生類友元函式對基類的成員使用情況
在一般友元函式的前面加上 template<typename T),注意在函式的宣告和定義處都要加這個模板 例如: //模板類,長方體類 template <typename ElementType> class Rectangle { ///*過載基類的輸入輸出運算子*/
模板類中含有友元函式的書寫規範
template <class T> class person; //模板類的宣告 template <class T> void show1(person<T>& ); //友元函式的宣告 template <class T> cl
為什麼c++中過載流操作符要用友元函式
1.先來看看友元函式過載流操作符例項 class complex { public: complex(int x, int y): real(x), imag(y){} complex():complex(0,0){} ~complex(){}
成員函式和友元函式 完成二元和一元運算子過載(進階1)
二元運算子過載: 全域性函式: #include <iostream> using namespace std; class Complex{//複數類 private: int
成員函式和友元函式實現一元運算子過載
使用友元函式實現一元運算子的過載 實現一元運算子的前置過載 即前置++a; #include <iostream> using namespace std; class Comple
設計一個日期類和時間類,編寫display函式用於顯示日期和時間。要求:display函式作為類外的普通函式,分別在Time和Date類中將display宣告為友元函式。在主函式中呼叫display函
#include <iostream> #include <iomanip> using namespace std; class Time; //不可省略 class Date { public: /* Date(int y,int m,int
編寫一個矩形rectangle類,有資料成員長len和寬wid,建構函式retange(int,int).和友元函式 int area(rectangle T)和int fun(rectangle T
#include <iostream> using namespace std; class rectangle { public: rectangle(int ,int ); friend int area(rectangle T); friend
定義一個圓類(Circle),其所在的包為bzu.info.software......
pack println 分享 etc getc out tar 輸出 alt – 定義一個圓類(Circle),其所在的包為bzu.info.software;定義一個圓柱類Cylinder,其所在的包為bzu.info.com;定義一個主類A,其所在的包也為bzu.in
等號操作符重載為什麽不能用友元函數大揭秘,以及函數沒有等到重載的時候賦值會出現什麽現象(盲點)
style 報錯 round 賦值運算符重載 -c post body opera 為什麽 先看下面程序結果輸出什麽? 1 #include <iostream> 2 using namespace std; 3 4 clas
java異常練習題:定義一個MulException類繼承Exception類,要求兩數相乘等於100報錯,在主類中定義一個方法,在方法中丟擲此異常,在主方法觀察結果
題目描述: 定義一個MulException類繼承Exception類,要求兩數相乘等於100報錯,在主類中定義一個方法,在方法中丟擲此異常,在主方法觀察結果。 定義一個DivException類繼承RuntimeException類,要求兩數相除等於2報錯,在主類中定義
6.8 複數類物件的加法運算-友元函式
要求定義友元函式實現2個複數物件的加法運算。 提示:複數的加法按照以下規定的法則進行:設z1=a+bi,z2=c+di是任意兩個複數,則它們的和z3是 (a+bi)+(c+di)=(a+c)+(b+d)i. 解題思路 :這裡用到了友元函式注意結合6.9 去看 分析友元函式和成員函式的區別
1).定義一個MulException類繼承Exception類,要求兩數相乘等於100報錯,在主類中定義一個方法,在方法中丟擲此異常,在主方法觀察結果。
1).定義一個MulException類繼承Exception類,要求兩數相乘等於100報錯,在主類中定義一個方法,在方法中丟擲此異常,在主方法觀察結果。 2).定義一個DivException類繼承RuntimeException類,要求兩數相除等於2報錯,在主類中定義一個方法,在方法中丟
1.定義一個學生類(Student),屬性有private的名字(name), public的年齡(age),專業(specialty)和封裝name屬性的方法:setName(),getName()
class student{ private String name; public String specialty; public int age; public student(String name,int age,String special
做一個簡單的銀行、賬戶演示程式。 (1)定義一個賬戶類,包含使用者名稱、密碼、餘額等屬性、存錢、取錢等方法。 (2)定義一個銀行類,包含銀行名、賬戶列表等屬性,開賬戶、查賬戶的功能。賬戶列表可以使用集
做一個簡單的銀行、賬戶演示程式。 (1)定義一個賬戶類,包含使用者名稱、密碼、餘額等屬性、存錢、取錢等方法。 (2)定義一個銀行類,包含銀行名、賬戶列表等屬性,開賬戶、查賬戶的功能。賬戶列表可以使用
定義一個日期類,對日期進行設定,判斷是否為閏年
include using namespace std; class Date { public: void Set(int y,int m,int d); bool IsLeapYear();
已知一個抽象類Shapge,該類中有一個方法GetArea。 要求定義一個Rectangle類,繼承Shape類,實現GetArea方法計算矩形面積。
已知一個抽象類Shapge,該類中有一個方法GetArea。 要求定義一個Rectangle類,繼承Shape類,實現GetArea方法計算矩形面積。 輸入輸出說明: 輸入: 5 4 輸
【OC複合題】之定義一個學生類,需要有姓名,年齡,考試成績三個成員屬性,建立5個物件,屬性可以任意值。(Objective-C)
題目: 定義一個學生類,需要有姓名,年齡,考試成績三個成員屬性,建立5個物件,屬性可以任意值。(Objective-C) 1) 不使用@property,手動編寫他們的訪問器方法(getter和setter),注意記憶體管理(手動管理記憶體) 2) 增加一個便利
關於模板類中友元函式的宣告與定義
//Widget.h #ifndef _WIDGET_H_ #define _WIDGET_H_ #include <iostream> using namespace std; template<class T> class Widget {