《C Primer》讀書筆記(9)

2021-07-02 14:16:54 字數 812 閱讀 5957

1.運算子過載,當有的時候物件運算與正常運算子的操作意義相同時,為了**的簡潔,我們就可以使用運算子過載。

比如乙個簡單的加法操作,沒有必要再寫乙個add方法,還是乙個+看著比較順眼。

//#include "stdafx.h"

#include #include using namespace std;

class a

//一種過載方式,類的成員函式

a operator+ (a a)

void display()

//友元函式過載,非成員函式設定為類的友元函式,以訪問私有變數

friend ostream& operator<<(ostream& os, a a);

};ostream& operator<<(ostream& os, a a)

//友元函式過載,非成員函式設定為類的友元函式,以訪問私有變數

//過載==運算子

friend bool operator==(const a&, const a&);

//過載!=運算子

friend bool operator!=(const a&, const a&);

};bool operator==(const a& a, const a& b)

bool operator!=(const a& a, const a& b)

int _tmain(int argc, _tchar* argv)

{ a a(10, "haha");

a b(10, "haha");

if (a == b)

cout<<"a == b"<

C primer 讀書筆記(9)

在函式宣告裡值得注意的一點是預設形參 default parameter 的宣告。預設形參即在呼叫函式時可以省略實參的形參,所以我覺得也可以翻譯成預設形參。在宣告函式時就顯式地給這些引數賦值了,如果沒有傳入實參,則直接使用預設值,如果傳入實參,就會覆蓋原來的預設值。有人可能會擔心,既然可以省略實參,...

《c primer》讀書筆記9

筆記範圍 2.6節 每個程式設計師都知道,在程式執行過程中,一些情況是不可預料的,無論程式的設計看起來是多麼完善,在某個特定的環境裡同樣會出錯,但是這樣的錯誤往往會有些共同之處,比如 new的時候也許會空間不足。顯然這樣的錯誤。不能完全說是程式設計的問題,但是如果你的程式能對這些情況做出反應,那麼這...

C primer 讀書筆記

第2 章 變數和基本型別 1 變數直接初始化和變數 複製初始化 int ival 1024 direct initialization int ival 1024 copy initialization 初始化不是賦值 2 內建型別復 制初始化和直接初始化幾乎沒有區別 但 對類型別物件來 說,有些初...