必威体育Betway必威体育官网
当前位置:首页 > IT技术

C++之 ostream详细用法

时间:2019-10-05 02:45:34来源:IT技术作者:seo实验室小编阅读:55次「手机版」
 

ostream

概述

在 C++中,ostream表示输出流,英文”output stream“的简称。在 C++中常见的输出流对象就是标准输出流cout,很少自定义ostream的对象,更多的是直接使用cout。那么 ostream 有什么用呢,来看一个场景:

class CPoint
{
public:
    CPoint(int x_,int y_):x(x_),y(y_){}
    int x,y;
};

这里定义了一个简单的类CPoint,如果我们实例化该类过后,想要打印对象的值:

CPoint point(1,2);
cout << point;

很明显,这样写是会报错,因为"<<"只能输出整型、实型等普通类型。错误如下:

而ostream的出现正好可以解决这个问题。

正文

C++中的ostream这个类型,通常作为某个类的友元函数出现,用于<<操作重载中。接下来咱看看如何通过修改以上示例让输出正常流正常进行。

class CPoint
{
public:
    CPoint(int x_,int y_):x(x_),y(y_){}

    friend ostream & operator <<(ostream & os,const CPoint & p){
        return os << "x = "<<p.x  << " y = "<< p.y << endl;
    }

    int x,y;
};

在 CPoint 中,我们重载了<<操作符,让其能够正常输出。

OK,这样就可以直接输出cout << point;

该方法还可以扩展到其他很多地方,对自定义的类型进行输出时特别管用,写法都是一样的,只要重载<<操作符,配合ostream一起使用即可。

相关阅读

java字符串比较equals()和equalsIgnoreCase()的区别

equals()是所有类的对象共有的方法,继承的是Object类的方法,所有对象都可以调用,在字符串的比较中,区分大小写equalsIgnoreCase()是St

格式化格林威治时间(Wed Aug 01 00:00:00 CST 2018)

在做excel导入数据时候,excel里的日期是格林威治时间,普通格式化不行,这里总结一下格式化格林威治时间的方法: 1。如果格林威治时间时

excel表格不能复制表到另一个表的解决方法

在Excel中录入完数据以后通常要进行复制,把这个工作表复制到另一个表中去,但是有些情况却不行。下面是由seo实验室小编分享的excel

在安装SQL Serve 的时候 提示 Microsoft.net framewor

  今天我在装sql server 2014 的时候出现了一个问题 : 安装sql server 2012提示microsoft.net framework 3.5 service pack1规则

reset.css

看了张鑫旭大神写的 css reset的重新审视,收益匪浅,对自己的reset.css进行修改,精简。分享一下 body,ul,ol,dl,dd,p,h1,h2,h3,h4,h5

分享到:

栏目导航

推荐阅读

热门阅读