我现在有一个Student类有如下成员函数和友元函数double Student::operator[](int i)const
ostream& operator<<(ostream& os,const Student& stu).............然后Student ada[3];
cout<<ada[i];//这步是调用了[],还是<<?请指教
那我就顺便再问个问题吧double operator[](int i)constdouble operator[](int i)这2个函数的真正区别究竟何在?我知道常函数是不允许修改调用对象的数据成员的所以double operator[](int i)const到底何时被调用呢?