+ -
当前位置:首页 → 问答吧 → 关于basic_string.h重载<<操作问题

关于basic_string.h重载<<操作问题

时间:2011-12-01

来源:互联网

C/C++ code

#include<iostream>
using namespace std;
class base;
ostream& operator << (ostream &os,const base &mb);
class base
{
    public:
    friend ostream& operator << (ostream &os,const base &mb);
    base(int i):a(i){}
    ostream& operator << (ostream &os)
    {
        os << a;
        return os;
    }
    ostream& print(ostream& os)const{os << a << endl;return os;}
    private:
    int a;
};
ostream &operator << (ostream &os,const base &mb)
{
    return mb.print(os);
}

int main()
{
    string ms("hello");
    cout << ms << ms << endl;//--->>关于string内部是怎么重载<<操作的??,找了basic_string.h没找到
    base mb1(6);
    cout << mb1 << mb1 << endl;//---->>这里输出和上面的输出格式有很大差别,何解?//调用的友元函数
    mb1 << cout;//--->>这里用的是重载,但是这个标准的写法恰好相反,所以请问,string内部来实现的呢?
    return 0;
}


问题:对于string内部他重载<<是方式是怎么实现的

作者: qscool1987   发布时间: 2011-12-01


MD,破笔记本,害我打错这么多字,
问题就是:我所写的重载<<操作,以及用友元函数,都不能得到标准的输出写法和格式,所以请问,string是怎么实现<<操作的

作者: qscool1987   发布时间: 2011-12-01

热门下载

更多