c++谭浩强的一段话怎么理解呢..我不懂它的前因后果
如下面的描述,我对它的因果关系没有搞明白,请问为什么就不能是成员函数了呢对“<<”和“>>”重载的函数形式如下:istream&operator>>(istream&,自...
如下面的描述,我对它的因果关系没有搞明白,请问为什么就不能是成员函数了呢
对“<<”和“>>”重载的函数形式如下:
istream & operator >> (istream &,自定义类 &);
ostream & operator << (ostream &,自定义类 &);
即重载运算符“>>”的函数的第一个参数和函数的类型都必须是istream&类型,第二个参数是要进行输入操作的类。重载“<<”的函数的第一个参数和函数的类型都必须是ostream&类型,第二个参数是要进行输出操作的类。因此,只能将重载“>>”和“<<”的函数作为友元函数或普通的函数,而不能将它们定义为成员函数 展开
对“<<”和“>>”重载的函数形式如下:
istream & operator >> (istream &,自定义类 &);
ostream & operator << (ostream &,自定义类 &);
即重载运算符“>>”的函数的第一个参数和函数的类型都必须是istream&类型,第二个参数是要进行输入操作的类。重载“<<”的函数的第一个参数和函数的类型都必须是ostream&类型,第二个参数是要进行输出操作的类。因此,只能将重载“>>”和“<<”的函数作为友元函数或普通的函数,而不能将它们定义为成员函数 展开
3个回答
展开全部
如果要写成类成员函数的话,那么这两个操作符是istream和ostream的类成员函数,意味着要修改标准库。
定义为友元函数的作用是为了可以访问输出时需要的自定义类中的私有成员。
定义为友元函数的作用是为了可以访问输出时需要的自定义类中的私有成员。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
定义为成员函数的话,是不需要两个参数的;具体调用的时候调用它的对象本身 就是一个参数;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询