c 學習之路 基礎知識的重構與高階(一)

2021-10-19 11:39:46 字數 3027 閱讀 6135

2. 函式

3. 操作符過載

c++學習之路:封裝性、繼承、多型性

c++學習之路:stl初探——以思維導圖形式

c++學習之路:基礎知識的重構與高階(二)

c++學習之路:基礎知識的重構與高階(三)

標頭檔案的基本結構

complex.h

#ifndef __complex__

#define __complex__

//0.前置宣告

class

ostream

;class

complex

;complex&

__doapl

(complex* ths,

const complex& r)

;//1.類的宣告

class

complex

;//2.類的定義

complex::function...

#endif

類的宣告
template

<

typename t>

//模板t

class

complex

//建構函式+初值列

complex&

operator+=

(const complex&);

//操作符過載

t real()

const

void

real

(t r)

//函式的過載

t imag()

const

//常量成員函式

private

: t re, im;

friend complex&

__doapl

(complex*

,const complex&);

//友元函式};

//建構函式模板的呼叫

建構函式
class

complex

//建構函式+初值列

private

:double re, im;

};

tips:

建構函式使用初值列更優雅。

建構函式可以被過載,但是要注意有預設形參時,過載函式是否和已有的函式產生二義性。

建構函式一般不放在private中,但也有例外。如設計模式sinleton。

常量成員函式

class

complex

//建構函式+初值列

double

real()

const

//real()不會改變量值的值,所以要加上const

double

imag()

const

private

:double re, im;};

//

tips:

如果函式不會改變資料的值,一定要加上const。

引用引數/返回值傳遞的三種方法:

complex

(double r =0,

double i =0)

:re(r),

im(r)

)

ostream&

operator

<<

(ostream& os,

const complex& x)

complex&

operator+=

(const complex&

);

tips:

引數/返回值傳遞盡量都傳遞引用

如果函式的返回值是函式中新建立的物件(臨時物件),則不可以返回引用。

傳遞者無需知道接收者是以引用方式接收。 如,

inline complex&

__doapl

(complex*

this

,const complex& r)

友元
class

complex

//建構函式+初值列

complex&

operator+=

(const complex&);

//操作符過載

private

:double re, im;

friend complex&

__doapl

(complex*

,const complex&);

//友元函式};

inline complex&

__doapl

(complex* ths,

const complex& r)

tips:

友元函式可以自由取得friend的private成員

相同class的各個物件互為友元

靜態資料 & 靜態成員函式

class

account

;double account::m_rata =

8.0;

//靜態資料的定義

tips:

靜態資料一定要記得定義(初始化)。

呼叫靜態函式(通過物件;通過類名)。

incline complex&

__doap1

(complex* ths,

const complex& r)

incline complex& complex::

operator+=

(const complex& r)

//呼叫

#include

ostream&

operator

<<

(ostream& os,

const complex& x)

C 學習之路 引用(一) 基礎知識

根據 c 程式設計 譚浩強 整理,整理者 華科小濤,對乙個資料可以建立乙個 引用 它的作用是為乙個變數起乙個別名。這是c 對c的乙個重要擴充。本系列分兩篇,本篇為基礎篇,主要是介紹基本知識。假如有乙個變數a,想給它起乙個別名b,可以這樣寫 int a 2 int b a 宣告b是a的 引用 以上宣告...

jQuery學習之路(一)基礎知識

今天開始學習jquery,希望大家能多多支援!function str function 本身就是jquery物件的縮寫形式,下面與之等效 jquery function css color red 理論上合法,但實際上缺少元素而報錯 值得一提的是,執行了.css 這個功能函式後,最終返回的還是jq...

C 學習與高階之路

c 缺點之一,是相對許多語言複雜,而且難學難精。許多人說學習c語言只需一本k r c程式語言 即可,但c 書籍卻是多不勝數。我是從c進入c 皆是靠閱讀自學。在此分享一點學習心得。個人認為,學習c 可分為4個層次 c 基礎 挑選一本入門書籍,如 c primer c 大學教程 或stroustrup撰...