回 帖 发 新 帖 刷新版面

主题:运算符重载实例>>出现问题,求助帖!

#include<iostream>
using namespace std;

class c
{
public:    
    friend ostream& operator<<(ostream& o,const c& exam);
    void SetTime();
    void ShowTime();
private:
    int h,m,s;
};

void c::SetTime()
{
    h=1;
    m=2;
    s=3;
}

ostream& 
operator<<(ostream& o,const c& exam)
{
    o<<exam.h<<':'<<exam.m<<':'<<exam.s;
    return o;
}

void main()
{
    c exam;
    exam.SetTime();
    cout<<exam<<endl;
}
//运行这个程序,出现以下内容并且一闪而消失,困惑中……:
Loaded 'ntdll.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\kernel32.dll', no matching symbolic information found.
The thread 0x838 has exited with code 4701840 (0x47BE90).
The program 'D:\c\Debug\运算符重载实例.exe' has exited with code 4701840 (0x47BE90).

回复列表 (共2个回复)

沙发

{
    o<<exam.h<<':'<<exam.m<<':'<<exam.s;
    return o;
}
当我在代码中的这部分,做“以下改动”的时候,问题消失了,这是怎么回事?呵呵……有人解答么?
{    
    return o<<exam.h<<':'<<exam.m<<':'<<exam.s;
}

板凳

那句不存在任何语法的问题。
应该是涉及到了内存的问题

我来回复

您尚未登录,请登录后再回复。点此登录或注册