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...