C 過載解引用 迭代器

2022-08-30 01:51:08 字數 1134 閱讀 7868

1 c++ 過載解引用_迭代器.cpp

#include

#include

using

namespace

std;

//實現迭代器的目的是可以進行泛型計算,比如使用範圍for語句等等;

//實現迭代器的步驟:

//1,定義乙個內部類iterator

//2,過載該內部類的!=, ++, *

//3,定義外部類的begin和end成員方法

class my_string;

iterator(char *i,int p)

:ip(i),pos(p){}

#if 0

iterator(iterator & i)

#endif

~iterator(){}

bool

operator!=(iterator it)

iterator operator++()

char & operator*()

};iterator begin()

iterator end()

my_string(){}

my_string(const

char* s)

}my_string( const my_string& ms)

}~my_string()

friend ostream &operator

<<(ostream&cout,my_string &s);

char & operator(int pos)

int size()const

my_string operator+(my_string s)

my_string operator+(const

char* s)

//如果返回值和引數都是物件而不是引用,那麼一定記得要先定義拷貝建構函式,而且該拷貝構造內部完成的是深拷貝

my_string operator=(my_string s)

else

return *this;

}};ostream &operator

<<(ostream&cout,my_string &s)

int main()

c語言 解引用

最近接觸到了乙個新的概念,叫 解引用 就是在函式傳參時,如果傳入的是指標,在函式體中未對它解引用,那麼,這個指標指向的值就不會發生改變。引用別人部落格中的概念 參考這三篇部落格,感謝他們。首先,我們來看swap的常見錯誤用法。void swap int p1,int p2 void swap err...

C 解引用 和箭頭 運算子的過載

1 箭頭運算子必須是類的成員函式。解引用運算子一般也應該宣告為類的成員函式,但不是必須。2 箭頭用算符返回值必須是乙個指標,或者是乙個過載了箭頭運算子的物件。a 如果返回的是乙個指標將呼叫內建的箭頭運算子。執行相當於 p.operator mem 的操作。b 如果返回是乙個過載了箭頭運算子的物件,則...

偶然發現 迭代器的自增與解引用(指標)

在c primer第四版中,有這樣一節 vector迭代器的自增和解引用運算。迭代器使用自增操作符 向前移動迭代器指向容器中下乙個元素。ok,這沒什麼問題。但是在note裡,它是這樣說的,由於end操作返回的迭代器不指向任何元素,因此不能對它進行解引用或自增操作。也就是說 vector iterat...