主页值得是网站的主要内容所在页,哈尔滨模板建站哪个品牌好,网站商城注意事项,网站公司建设网站价格运算符的重载C 在输出内容时#xff0c;最常用的方式#xff1a;std::cout 1 hello;提出问题#xff1a;那这条语句为什么能成立呢#xff1f;cout 是什么#xff1f;为什么 运算符能用在 cout 上呢#xff1f;原因#… 运算符的重载C 在输出内容时最常用的方式std::cout 1 hello;提出问题那这条语句为什么能成立呢cout 是什么为什么 运算符能用在 cout 上呢原因实际上cout 是在 iostream 头文件中定义的 ostream 类的对象。 能够用在 cout 上是因为在 ostream 类对 进行了重载。对于如下这条语句std::cout 1 hello;有可能按以下的方式重载成 ostream 类的成员函数ostream ostream::operator(int n){ .... // 输出n整型的代码 return *this;}
ostream ostream::operator(const char * s){ .... // 输出s字符串的代码 return *this;}
那么在使用流插入运算符时等价于的形式如下01 数据类型是int类型时std::cout 1;上面的语句等价于cout.operator(1);02 数据类型是字符串类型时std::cout hello;上面的语句等价于cout.operator(hello);03 数据类型组合使用时std::cout 1 hello;上面的语句等价于( cout.operator(1) ).operator(hello);— —假定我们要想把某个对象里的内容进行打印输出那么我们可以重载 ostream 类的流插入 运算符。下面以 CStudent 类作为例子输出结果1,20,小林coding需要注意ostream operator(ostream o, const CStudent s)函数是全局的所以函数的第一个参数必须要传入 ostream 的对象并且 CStudent 类需要将此函数声明成友元函数使得函数可以访问 CStudent 类的私有成员变量。运算符的重载还是以 CStudent 类作为例子假设想通过键盘的输入的内容来初始化对象则我们可以重载 istream 类的流提取 运算符。输入内容和输出内容// 输入内容1,20,小林coding
// 输出内容1,20,小林coding
小结要想流插入 运算符和流提取 运算符能针对自定义的对象那么我们就需要重载针对该对象的 ostream 类的 运算符和 istream 的 运算符并且只能重载成全局的函数。然后在 CStudent 类里需要把上面的两个重载函数声明成友元函数使得两个重载的函数可以访问和赋值 CStudent 类里的私有成员函数。声明本文于网络整理版权归原作者所有如来源信息有误或侵犯权益请联系我们删除或授权事宜。