#ifndef __complex__
#define __complex__
#include class complex //前置申明
class complex
complex::function()...//類定義
#endif
class complex //class head
complex& operator += (const complex&);
double real () const //函式在body內定義,則自動成為inline候選人
double imag () const
private:
double re, im;
friend complex& __doapl (complex *, const complex&);
};
建構函式是類中非常重要的函式,在類建立的時候由系統自動呼叫
complex (double r = 0, double i = 0)//預設引數,在不傳參的時候直接使用預設值
: re (r), im (i) //初始值列表,在建立成員的時候直接賦值,比在建立之後賦值效率高
double real () const
在函式名後面加const修飾符,一般情況下加const表示這個函式不會修改內部的成員變數。能加的盡量加上const。
const complex a(1,2);//由於a是const的,而類的設計者在設計real()的時候沒有const,呼叫會報錯
a.real();
值傳遞會發生拷貝,當傳遞比較大的資料時,拷貝是一件很費時間和效率的事情,所以在傳值和引用之間首選傳引用,但是需要考慮有些時候是不能傳引用的,比如臨時物件
自由取得friend的private成員
相同class的各個object互為友元
操作符過載可以看做是特殊的函式,可以是成員函式,也可以是非成員函式,如果是成員函式的話,預設第乙個引數是this指標,一般不寫。
!(這種情況下就不能寫成是成員函式了,因為和其它型別的物件相加
!(這種情況下,返回的是臨時物件,臨時物件返回值絕對是不能用引用的
返回值在什麼情況下,不能使用pass by reference?
如果函式的返回值是在函式體內部臨時建立用來存放結果值(是local的),那麼在函式結束時這個臨時物件的生命週期就結束了【雖然仍然可以吧reference傳遞出來但是是錯誤的】。這種情況則不能使用pass by reference。
c 類的指標
1,類指標呼叫成員函式,根據的不是指標所指向物件而是根據指標所屬的型別,呼叫相關的函式。此程式指標p照樣能呼叫類a的函式print.2,指向基類物件的指標不僅可以包含基類物件的位址,還可以包含派生類物件的位址。3,類的物件和類的指標的區別 http blog.csdn.net wang7890 ar...
C 之智慧型指標類模板
1 現代c 開發庫中最重要的類模板之一 2 c 中自動記憶體管理的主要手段 3 能夠在很大程度上避開記憶體相關的問題。1 生命週期結束時,銷毀指向的記憶體空間 2 不能指向堆陣列,只能指向堆物件 變數 3 一片堆空間只屬於乙個智慧型指標物件 4 多個智慧型指標物件不能指向同一片堆空間。例項分析1 i...
C 類中的this指標
1.this指標的用處 乙個物件的this指標並不是物件本身的一部分,不會影響sizeof 物件 的結果。this作用域是在類內部,當在類的非靜態成員函式中訪問類的非靜態成員的時候,編譯器會自動將物件本身的位址作為乙個隱含引數傳遞給函式。也就是說,即使你沒有寫上this指標,編譯器在編譯的時候也是加...