C 之不帶指標類的設計 Boolean

2022-07-29 12:39:12 字數 1351 閱讀 8099

#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指標,編譯器在編譯的時候也是加...