C 學習筆記 第34課 陣列操作符的過載

2021-10-24 02:35:00 字數 2489 閱讀 2028

1. 過載陣列訪問修飾符

被忽略的事實,陣列訪問符是c/c++中的內建操作符

陣列訪問符的原生意義是陣列訪問和指標運算—訪問某個元素

c語言深度剖析:a[n] <–> *(a + n) <–> *(n + a) <–>n[a]

2.指標與陣列的複習

34-2.cpp

#include

#include

using namespace std;

intmain()

;for

(int i=

0; i<

5; i++

)for

(int i=

0; i<

5; i++

) cout << endl;

for(

int i=

0; i<

5; i++

)for

(int i=

0; i<

5; i++

)return0;

}執行結果01

23410

1112

13

陣列訪問修飾符【】過載注意事項:

34-3.cpp

#include

#include

using namespace std;

class test

int& operator (

const string& s)

else

if( s ==

"2nd"

)else

if( s ==

"3rd"

)else

if( s ==

"4th"

)else

if( s ==

"5th"

)return a[0]

;}intlength()

};intmain()

for(

int i=

0; ilength()

; i++

)

cout << t[

"5th"

]<< endl;

cout << t[

"4th"

]<< endl;

cout << t[

"3rd"

]<< endl;

cout << t[

"2nd"

]<< endl;

cout << t[

"1st"

]<< endl;

return0;

}

完善陣列類:

intarray.h

#ifndef _intarray_h_

#define _intarray_h_

class intarray

;#endif

intarray.cpp
#include

"intarray.h"

intarray:

:intarray

(int len)

bool intarray:

:construct()

}else

return ret;

}intarray* intarray:

:newinstance

(int length)

return ret;

}int intarray:

:length()

bool intarray:

:get

(int index,

int& value)

return ret;

}bool intarray:

:set

(int index,

int value)

return ret;

}int

& intarray:

:operator (

int index)

intarray& intarray:

:self()

intarray::~

intarray()

main.cpp
#include

#include

"intarray.h"

using namespace std;

intmain()

for(

int i =

0; i < iarray.

getlength()

; i++

)printf

("\n");

intarray iarray1

(iarray)

;for

(int i =

0; i < iarray1.

getlength()

; i++

)return0;

}

小結

C 筆記 第4課 操作符過載

complex complex operator complex c2 或 complex complex operator const complex c2 類內 friend complex operator complex c1,complex c2 類外 complex operator c...

C 學習筆記 第40課 前置操作符和後置操作符

值得思考的問題 在編譯器中反彙編可知,i 和 i的彙編 是一樣的 問題產生的原因 現代編譯器會對 進行優化 優化會使二進位制 更加高效 優化後的二進位制程式丟失c c 的原生語義 不可能從編譯後的二進位制程式還原c c 程式 include using namespace std class tes...

C 學習筆記 第38課 邏輯操作符的陷阱

1.運算元只有兩種值 true和false 2.邏輯表示式不用完全計算就能確定最終值 3.最終結果只能是true或者false include using namespace std class test intvalue const bool operator const test l,const...