過載運算子號(友元)
#include
using namespace std;
class complex //複數類宣告
{
private:
double sb;//實數部
double xb;//虛數部
public:
complex(double r=0,double i=0)//直接賦值可以多用於有參和無參的函式
{
sb=r;xb=i;
}
friend complex operator+(complex &a,complex &b);//利用友元的時候就要把參與運算的所有類都定義並新增引用符號&
void Show()
{
cout<<"("<<sb<<","<<xb<<")"<<endl;
}
};
complex operator+(complex &a,complex &b)//這裡的operator就不是複數類中的了
{
complex x;
x.sb=a.sb+b.sb;
x.xb=a.xb+b.xb;
return x;
}
int main() //主函式
{
complex z1(1.5,2.8),z2(-2.3,3.4),z3; //聲明覆數類的物件
z3=z1+z2;//+運算子被過載
cout<<“z3=”;
z3.Show();
return 0;
}
相關推薦
過載運算子號(友元)
#include using namespace std; class complex //複數類宣告 { private: double sb;//實數部 double xb;//虛數部 public: complex(double r=0,double i=0)//直接賦值可以多用於有
(轉)為什麼operator運算子過載一定要為友元函式呢
如果是過載雙目操作符(即為類的成員函式),就只要設定一個引數作為右側運算量,而左側運算量就是物件本身 而 >> 或<< 左側運算量是 cin或cout 而不是物件本身,所以不滿足後面一點,就只能申明為友元函數了 如果一定要宣告為成員函式,只能成為如下的形式:
過載運算子(時間類友元)
#include using namespace std; class Time { private: int hour; int minute; int second; public: Time(int a=0,int b=0,int c=0) { this->hour=a; th
C++運算子過載(友元函式方式)
我們知道,C++中的運算子過載有兩種形式:①過載為類的成員函式(見C++運算子過載(成員函式方式)),②過載為類的友元函式。 當過載友元函式時,將沒有隱含的引數this指標。這樣,對雙目運算子,友元函
為什麼operator運算子過載一定要為友元函式呢?
格拉德韋爾在《異數》:並非天資超人一等,而是付出了持續不斷的努力。只要經過1萬小時的錘鍊,任何人都能從平凡變成超凡”。要成為某個領域的專家,需要10000小時:如果每天工作八個小時,一週工作五天,那麼成為一個領域的專家至少需要五年。 linux原始碼線上閱讀 各種線編譯工具
ACM零起點2017-7-25(sort用過載運算子對結構體排序)
上篇文章http://blog.csdn.net/ccnuacmhdu/article/details/76039759 已經用寫cmp函式的方式實現sort對結構體的 排序,下面是通過過載運算子的方式實現sort對結構體進行排序 #include<cstdio&g
運算子過載,何時用友元,何時用成員函式
1.能用成員函式,儘量使用成員函式。因為,友元函式,可以訪問類內的所有資料,破壞了類的封裝。 2.當所過載的運算子的函式的引數中,含有該類不能訪問的資料時,用友元函式。因為,友元函式時全域性函式,它不在某一類中,可以訪問類之外的資料。
C++第三章(類和物件)下篇 (動態建立與釋放,物件的賦值和複製,靜態資料成員,友元)
一,物件的動態建立與釋放 new (程式設計師怎麼會沒有朋友??? 來讓我給你new 一個) 在我學過的c中 我們一般都用 malloc 來動態申請空間。現在我們可以用new 來申請空間 Box *pt; pt = new Box; c++允許在new時進行賦值 Box *
C++模板類內友元(友元函式,友元類)宣告的三種情況
根據《C++ Primer》第三版16.4節的敘述,C++類模板友元分為以下幾種情況1.非模板友元類或友元函式。 書上給了一個例子:class Foo{ void bar();};template <class T>class QueueItem{
C++字串過載運算子函式(劍指offer面試題1)
//劍指offer面試題1:過載運算子函式 //題目:如下為型別CMyString的宣告,請為該型別新增多種運算子函式。 #include<iostream> #include<cstring> #include<cstdio>
Digit Generator(生成元)
ogr som 後來 == size ive not ref 來看 For a positive integer N, the digit-sum of N is defined as the sum of N itself and its digits. When M i
2018年6月8號(過河)
++ col c++ 所有 容易 thml pan 大於 暴力 題目描述 在河上有一座獨木橋,一只青蛙想沿著獨木橋從河的一側跳到另一側。在橋上有一些石子,青蛙很討厭踩在這些石子上。由於橋的長度和青蛙一次跳過的距離都是正整數,我們可以把獨木橋上青蛙可能到達的點看成數軸上的一
2018年8月14號(回顧spfa)
估計 spfa算法 優化 負環 同時 論文 clas 調整 掃描 說實話,我之前沒有認真的spfa,現在後悔不以,特別是今天考了三題的圖論,多要用到spfa,我肯定是懵逼地看題發呆;沒有辦法,知得晚上晚自習時寫篇論文來回顧一下。 Bellman-ford大家應該都
Jenkins修改埠號(windows系統)
windows下改埠號: Jenkins安裝成功後,預設的埠為8080。 如果該埠號與其他服務的埠號衝突,則需要更改Jenkins的埠號。 具體方法為: 修改Jenkins安裝目錄下的 jenkins.xml 檔案,將<arguments>元素中的 httpPort
過載運算子號
過載運算子號 // A code block #include"iostream" using namespace std; class complex{//複數類宣告 private : double shi,xu; public : complex(double s1=0.0,doubl
金蝶K3 Wise 用SQL生成單號(單據編號)及單據內碼(單據ID)
一 生成各種單據的編號 詳細實現過程參見儲存過程 p_BM_GetBillNo ICBillNo 表存放所有單據的編碼資訊,其中FBillID 用於p_BM_GetBillNo的第一個引數 以採購申請單為例,先查出FBillID,然後呼叫p_BM_GetBillNo select
Tuxera NTFS for mac 2018 破解版 附序列號(完美破解)
Tuxera NTFS for Mac 是一款 MAC讀寫工具,可以完整的讀寫相容NTFS格式驅動器。對磁碟進行訪問、編輯、儲存和傳輸檔案等操作。同時還包括開源磁碟管理器等簡單的格式和硬碟維修檢查和修復。 Tuxera ntfs 2018註冊版下載地址 Tuxera ntfs 2019破解版下載地址 軟
C++的魅力之操作符的過載,簡單的友元函式
1.簡單的友元函式 友元函式可以直接訪問private:中的資料。 我們一定要認識到一點,相同class的各個object互為friends(友元) 比如: class complex { public
微信公眾號開發《傳送訊息模板到公眾號(java版)》
具體實現過程工具類測試:(使用前需要適當修改即可) package com.shove.util; import java.io.InputStream; import java.io.OutputStream; import java.ne
Android唯一識別號(裝置指紋)的生成及原理
目的: 儘可能實現,同一裝置在不刷機不恢復出廠的情況下,每次生成的裝置指紋不變;並且儘可能保證兩部不同的裝置生成的裝置指紋不能一樣) 原理: 1.將imei號+手機硬體資訊+androidID拼接成一個字串(由於個別手機某些時候獲取的wifi MAC和藍芽