符号重载的理解
value_type& operator [] (int location) { return *(sqlist+location); }
//例如:value_type类型的一个temp,temp[10], 就是temp.operator [](10);
MyVector& operator = (MyVector& mv) { if (&mv == this) { return *this; } cout << "重写 = :" <<endl; Clear(); for (int i=0; i<mv.length; i++) { PushBack(mv.sqlist[i]); } maxsize = GetMaxSize(); length = mv.length; return *this; } //m = mv, 就是m.operator = (mv);将mv的所有数据传递给m。
// 显示所有元素 friend ostream& operator<< (ostream& out, const MyVector<T>& rhs) //此处const型的引用,提高效率的同时,控制无法改变原来的数据。 { if(rhs.length == 0) { out << "无元素" ; } else { out << "all of the members: "; for (int i=0; i< rhs.length; i++) { out << *(rhs.sqlist+i) << " "; } } return out; }
//括号中的就是参数,符号的重载和函数一样,cout<< myvector; 就是cout.operator<<(out,myvector);返回一个引用流。