c 一些問題2 0 友元函式,運算子的過載

2021-09-24 08:29:51 字數 1167 閱讀 6190

友元類:打破了類的封裝。 a普通類宣告為友元函式. 友元函式可以訪問類中的私有成員,打破了類的封裝。 b友元成員函式。乙個類的成員函式是另乙個類的友元函式。 c友元類。 將乙個類宣告為另一類的友元類。

****如下** ``` #include #include #include using namespace std; class ********; class point ;

point::point(int x=0, int y=0) //建構函式

void point::prit(point &p1, point &p2) double getlong(point &p1, point &p2)

class ********

複製**private: point a, b, c; //point類作為資料成員

********::********(point &a, point &b, point &c)

int main()

不能過載的有5個 .(成員訪問運算子), *(成員指標訪問運算子), ::(域運算子),

sizeof(長度運算子), ?:(條件運算子)

注意:過載不能改變運算子的運算物件

過載不能改變運算子的優先順序

過載不能改變運算子的結合性

過載不能有預設的引數

******

複製**#include #include using namespace std; class fraction ;

// 建構函式 fraction::fraction(int m=0,int n=1)

// 輾轉相除法,求最大公約數。 int maxyueshu(int m, int n) int r; while (true)

return n;

複製**

//變成最簡分數 void fraction::print() //友元函式過載。 fraction operator + (fraction &f1, fraction &f2) //成員函式過載 fraction fraction::operator / (fraction &f1)

int main()

*結果如圖*

![002.png](

東風啊,東風。

複製**

C 友元運算子過載函式

運算子過載函式 實現物件之間進行算數運算,實際上是物件的屬性之間做運算 包括 加號 減號 負號 正號 運算子過載函式分為 普通友元運算子過載函式 成員友元運算子過載函式 成員運算子過載函式 運算子運算子過載函式按運算型別為 雙目運算子過載函式,如加 減 乘 除 賦值 單目運算子過載函式 自加 自減 ...

LinuxC關於運算子的一些問題

1.c語言運算子的分類?1 算術運算子 用於各類數值運算,包括加 減 乘 除 求餘 或稱模運算,自增 自減 2 關係運算子 用於比較運算,包括大於 小於 等於 大於等於 小於等於 和不等於 3 邏輯運算子 用於邏輯運算,包括與 或 非 4 位操作運算子 參與運算的量,按二進位制位進行運算,包括位與 ...

c 內聯函式 友元函式 友元類 運算子過載

短小 頻繁,且沒有迴圈體 的功能 1.內聯函式 特點 1.在函式名前加inline關鍵字 2.以空間換取時間,編譯階段整個函式體替換呼叫部分 2.巨集定義 1.對變數巨集定義 define 巨集名 值 2.帶參函式的巨集定義 define 函式名 形參表 不需要型別 函式體 1.整體思維 2.不進行...