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 內建型別復 制初始化和直接初始化幾乎沒有區別 但 對類型別物件來 說,有些初...