当前位置: 首页 > 科技观察

C++流插入和流提取运算符重载

时间:2023-03-12 09:37:07 科技观察

—1—<<运算符重载C++在输出内容时,最常见的方式:std::cout<<1<<"hello";提问:那为什么这个说法可以成立呢?什么是cout?为什么<<运算符与cout一起工作?原因:cout实际上是iostream头文件中定义的ostream类的一个对象。<<可以用在cout上,因为<<在ostream类中被重载了。对于以下语句:std::cout<<1<<"hello";可以通过以下方式将其重载为ostream类的成员函数:ostream&ostream::operator<<(intn){....//输出n整数代码return*this;}ostream&ostream::operator<<(constchar*s){....//outputsstringcodereturn*this;}那么当使用streaminsertion<>运算符的重载仍然以CStudent类为例。假设我们想通过键盘的输入内容来初始化对象,那么我们可以重载istream类的流提取>>操作符。输入内容和输出内容://Inputcontent:1,20,Kobayashicoding//Outputcontent:1,20,Kobayashicoding—3—Summary如果要流插入<<运算符和流提取>>运算符可以用于selfDefined对象,那么我们需要为对象重载ostream类的<<操作符和istream的>>操作符,并且只能作为全局函数重载。那么在CStudent类中,需要将以上两个重载函数声明为友元函数,这样两个重载函数就可以在CStudent类中访问和赋值私有成员函数。