首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

小弟有个有关问题想不明白,望们教下

2012-03-03 
小弟有个问题想不明白,望大虾们教下在此处定义了下一个顺序表结构体(表中的函数有省略)想重载下并输出顺

小弟有个问题想不明白,望大虾们教下
在此处定义了下一个顺序表结构体(表中的函数有省略)
想重载下<<
并输出顺序表中的数据

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.是模板啊,不是定好的,你可以根据自己需要传入相应类型
[解决办法]
运算符重载是“语法糖”。

热点排行
Bad Request.