| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 254 人关注过本帖
标题:重载输出运算符 求指教
只看楼主 加入收藏
烟雾中的迷茫
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:621
专家分:1069
注 册:2011-2-9
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:5 
重载输出运算符 求指教
程序代码:
#include<iostream>
#include"student.h"
using namespace std;
CStudent::CStudent()
{
    strName="General Student";
    chinese=0;
    math=0;
    english=0;
}

CStudent::CStudent(std::string Name,double c,double m,double e)
{
    strName=Name;
    chinese=c;
    math=m;
    english=e;
}

CStudent CStudent::operator +(CStudent S)
{ 
    CStudent temp;
    temp.strName="Total Performance";
    temp.chinese=this->chinese+S.chinese;
    temp.math=this->math+S.english;
    temp.english=this->english+S.english;
    return temp;
}

ostream& operator <<(ostream& out,CStudent& S)
{
    out<<S.strName<<"("<<S.chinese<<" , "<<S.math<<" , "<<S.english<<")"<<endl;
    return out;
}

void CStudent::SetChinese(double a)
{
    chinese=a;
}

void CStudent::SetMath(double a)
{
    math=a;
}

void CStudent::SetEnglish(double a)
{
    english=a;
}

double CStudent::returnChinese()
{
    return chinese;
}

double CStudent::returnMath()
{
    return math;
}

double CStudent::returnEnglish()
{
    return english;
}

double CStudent::returnTotalPerformance()
{
    return chinese+math+english;
}

double CStudent::returnAverage()
{
    return (chinese+math+english)/3;
}

string CStudent::returnName()
{
    return strName;
}

这里是类的实现 大家看下
搜索更多相关主题的帖子: english 
2011-09-15 16:38
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:8 
程序代码:
#include <iostream>
#include <string>

using namespace std;

class CStudent
{
    public:
        CStudent();
        CStudent(std::string Name,double c,double m,double e);
        CStudent operator +(CStudent S);
        friend ostream& operator <<(ostream& out,CStudent& S);
        void SetChinese(double a);
        void SetMath(double a);
        void SetEnglish(double a);
        double returnChinese();
        double returnMath();
        double returnEnglish();
        double returnTotalPerformance();
        double returnAverage();
        string returnName();
    private:
        string strName;
        double chinese;
        double math;
        double english;
};

CStudent::CStudent()
{
    strName="General Student";
    chinese=0;
    math=0;
    english=0;
}

CStudent::CStudent(std::string Name,double c,double m,double e)
{
    strName=Name;
    chinese=c;
    math=m;
    english=e;
}

CStudent CStudent::operator +(CStudent S)
{
    CStudent temp;
    temp.strName="Total Performance";
    temp.chinese=this->chinese+S.chinese;
    temp.math=this->math+S.english;
    temp.english=this->english+S.english;
    return temp;
}

ostream& operator <<(ostream& out,CStudent& S)
{
    out<<S.strName<<"("<<S.chinese<<" , "<<S.math<<" , "<<S.english<<")"<<endl;
    return out;
}

void CStudent::SetChinese(double a)
{
    chinese=a;
}

void CStudent::SetMath(double a)
{
    math=a;
}

void CStudent::SetEnglish(double a)
{
    english=a;
}

double CStudent::returnChinese()
{
    return chinese;
}

double CStudent::returnMath()
{
    return math;
}

double CStudent::returnEnglish()
{
    return english;
}

double CStudent::returnTotalPerformance()
{
    return chinese+math+english;
}

double CStudent::returnAverage()
{
    return (chinese+math+english)/3;
}

string CStudent::returnName()
{
    return strName;
}



int main()
{
    CStudent s1("yeah", 1.00, 100.00, 100.00);
    cout << s1 << endl;
    cout << "Hello world!" << endl;

    return 0;
}
输出:
yeah(1 , 100 , 100)

Hello world!

Process returned 0 (0x0)   execution time : 0.000 s
Press any key to continue.

正确啊,没有发现有什么问题啊。

我们都在路上。。。。。
2011-09-16 12:24
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:2 
VC6下面试了下,也行啊。。没有问题啊。

我们都在路上。。。。。
2011-09-16 12:31
烟雾中的迷茫
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:621
专家分:1069
注 册:2011-2-9
收藏
得分:0 
那我 衰了 咋回事?
2011-09-16 16:44
烟雾中的迷茫
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:621
专家分:1069
注 册:2011-2-9
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

为什么出现这个?
2011-09-16 17:27
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:0 
friend ostream& operator <<(ostream& out,CStudent& S);
你没有指定友元重载<< 或是 >> ?看C++ primer上的解释吧。

我们都在路上。。。。。
2011-09-19 13:59
快速回复:重载输出运算符 求指教
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029907 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved