小弟有个有关问题想不明白,望们教下
小弟有个问题想不明白,望大虾们教下
在此处定义了下一个顺序表结构体(表中的函数有省略)
想重载下<<
并输出顺序表中的数据
此两个函数,有N多地方看不懂.
1.void Output(ostream& out) const中const是什么 意思? 咋感觉const是否放在函数前面更好? ?
2.Output(ostream& out)中out大概是什么意思?
3.out<<element[i]<<" "中为什么不是cout<<element[i]<<" "
4.x.Output(out)是什么意思?
5.return out有什么用处
6.重载<<参数ostream& out, const LinearList<T>& x 中第二个参数可是定好的?
望大虾们说些自己的看法理解 ^_^
------解决方案--------------------
1.是说这个函数是const函数,不能对对象做修改
2.out就是输入输出流了就像cout
3.同2,其实把cout当做形参,里面就相当于cout《...
4.调用你上面那个函数
5.返回输出流的引用,这样可以链式表达cout<< " "<< " ";
不然一次只能cout<< " " ;
6.是模板啊,不是定好的,你可以根据自己需要传入相应类型
------解决方案--------------------
运算符重载是“语法糖”。
在此处定义了下一个顺序表结构体(表中的函数有省略)
想重载下<<
并输出顺序表中的数据
- C/C++ code
template<class T> class LinearList { public: LinearList(int MaxListSize = 10); //构造函数 ~LinearList(){delete[] element;}; //析构函数 void Output(ostream& out) const; private: int length; int MaxSize; T *element; //一维动态数组 }; ....... template<class T> void LinearList<T>::Output(ostream& out) const { //把表输出至输出流 for(int i =0; i<length; i++) { out<<element[i]<<" "; } } //重载<< template<class T> ostream& operator<<(ostream& out, const LinearList<T>& x) { x.Output(out); return out; }
此两个函数,有N多地方看不懂.
1.void Output(ostream& out) const中const是什么 意思? 咋感觉const是否放在函数前面更好? ?
2.Output(ostream& out)中out大概是什么意思?
3.out<<element[i]<<" "中为什么不是cout<<element[i]<<" "
4.x.Output(out)是什么意思?
5.return out有什么用处
6.重载<<参数ostream& out, const LinearList<T>& x 中第二个参数可是定好的?
望大虾们说些自己的看法理解 ^_^
------解决方案--------------------
1.是说这个函数是const函数,不能对对象做修改
2.out就是输入输出流了就像cout
3.同2,其实把cout当做形参,里面就相当于cout《...
4.调用你上面那个函数
5.返回输出流的引用,这样可以链式表达cout<< " "<< " ";
不然一次只能cout<< " " ;
6.是模板啊,不是定好的,你可以根据自己需要传入相应类型
------解决方案--------------------
运算符重载是“语法糖”。