我来我网
https://5come5.cn
 
您尚未 登录  注册 | 菠菜 | 软件站 | 音乐站 | 邮箱1 | 邮箱2 | 风格选择 | 更多 » 
 

minmin





性别: 美女 状态: 该用户目前不在线
等级: 栋梁之材
发贴: 615
威望: 0
浮云: 1229
在线等级:
注册时间: 2007-09-16
最后登陆: 2008-06-30

5come5帮你背单词 [ peaceful /'pi:sful/ a. 和平的,安宁的,和平时期的 ]


友元函数

书上不是说友元函数可以访问类的私有成员嘛..可是我的程序为什么出错了...denom,numer是类的私有成员
friend ostream & operator << (ostream & out,const Rational & value){
    if(value.denom!=0){
        out<<value.numer;
        if(value.denom!=1){
            out<<'/'<<value.denom;
            return out;
        }

        if(value.numer==0)
            out<<"indeterminate";
        else{
            if(value.numer<=0)
                out<<'-';
            out<<"infinity";
        }
        return out;
    }
}



error C2248: 'denom' : cannot access private member declared in class 'Rational'
        e:\programmer\visual c++\rationals\rational.h(20) : see declaration of 'denom'
E:\programmer\Visual C++\Rationals\Rational.cpp(94) : error C2248: 'numer' : cannot access private member declared in class 'Rational'
        e:\programmer\visual c++\rationals\rational.h(19) : see declaration of 'numer'
E:\programmer\Visual C++\Rationals\Rational.cpp(95) : error C2248: 'denom' : cannot access private member declared in class 'Rational'
        e:\programmer\visual c++\rationals\rational.h(20) : see declaration of 'denom'
E:\programmer\Visual C++\Rationals\Rational.cpp(96) : error C2248: 'denom' : cannot access private member declared in class 'Rational'
        e:\programmer\visual c++\rationals\rational.h(20) : see declaration of 'denom'
E:\programmer\Visual C++\Rationals\Rational.cpp(100) : error C2248: 'numer' : cannot access private member declared in class 'Rational'
        e:\programmer\visual c++\rationals\rational.h(19) : see declaration of 'numer'
E:\programmer\Visual C++\Rationals\Rational.cpp(103) : error C2248: 'numer' : cannot access private member declared in class 'Rational'
        e:\programmer\visual c++\rationals\rational.h(19) : see declaration of 'numer'
Error executing cl.exe.
顶端 Posted: 2008-04-17 21:02 | [楼 主]
xys1985



性别: 帅哥 状态: 该用户目前不在线
等级: 品行端正
发贴: 122
威望: 0
浮云: 1108
在线等级:
注册时间: 2006-10-03
最后登陆: 2010-06-13

5come5帮你背单词 [ regulate /'regjuleit/ vt. 管理,控制,调整,校准 ]


我记得友元函数基本上是在类的内部声明,而在外部定义的普通函数见多..
顶端 Posted: 2008-04-17 21:10 | [1 楼]
wangfan





性别: 帅哥 状态: 该用户目前不在线
等级: 栋梁之材
发贴: 915
威望: 0
浮云: 1147
在线等级:
注册时间: 2007-09-10
最后登陆: 2010-05-25

5come5帮你背单词 [ perplex /pə'pleks/ vt. 使困惑,使复杂化 ]


好象你没申明类啊
不是很懂,机电学院的飘过
顶端 Posted: 2008-04-17 21:40 | [2 楼]
枫叶刀





性别: 帅哥 状态: 该用户目前不在线
等级: 鹤立鸡群
发贴: 1393
威望: 0
浮云: 1282
在线等级:
注册时间: 2006-03-23
最后登陆: 2009-08-14

5come5帮你背单词 [ bright /brait/ a. 明亮的,光明的,晴朗的,欢快的,兴高采烈的,聪明的,(颜色)鲜艳的 ]



友元不是在外部定义的!
要在类内部声明友元函数,在外面定义该全局函数!
看c++的书吧
顶端 Posted: 2008-04-18 12:51 | [3 楼]
小树



性别: 美女 状态: 该用户目前不在线
等级: 品行端正
发贴: 246
威望: 0
浮云: 1139
在线等级:
注册时间: 2007-10-02
最后登陆: 2009-10-15

5come5帮你背单词 [ keep /ki:p/ vi. 保持,坚持;vt. 使继续,使保待,保存,阻止,饲养,经营,管理,履行,遵循 ]


在类里申明友元,不是在外面 申明
顶端 Posted: 2008-04-18 13:03 | [4 楼]
我来我网·5come5 Forum » 程序员之家

Total 0.006599(s) query 5, Time now is:11-22 03:39, Gzip enabled
Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号