新微赢技术网

标题: 友元函数问题 [打印本页]

作者: jane    时间: 2009-11-4 00:35
标题: 友元函数问题
友元函数不能访问类的私有变量是怎么回事啊?    帮忙分析下原因
作者: 三弓厶    时间: 2009-11-4 00:35
可以
作者: 我只在乎你    时间: 2009-11-4 00:35
但是6.0对友员支持不好..你要用命名空间隔忾
作者: 蓝天使者    时间: 2009-11-4 00:35
要全部贴出来吗?
作者: 欧阳天明    时间: 2009-11-4 00:35
恩..贴出来看看啊
作者: 冰feng£落叶    时间: 2009-11-4 00:35
是用命名空间,我是初学者,还在试;
作者: 让爱留在心底    时间: 2009-11-4 00:35
头文件 friends.h
#ifndef FRIENDF
#define FRIENDF
namespace friends
{
    class Box
    {
    public:
        Box(double rlength=1.0,double rwidth=1.0,double rheight=1.0);
        ~Box();
        void Show();
        //friend double BoxSurface(const Box& other1,const Box& other2);
        friend double BoxSurface(const Box& other1);
    private:
        double length;
        double width;
        double height;
    };
}
#endif
定义文件:
friends.cpp
#include<iostream>
#include"friends.h"
using namespace std;
using namespace friends;
Box::Box(double rlength,double rwidth,double rheight):length(rlength),width(rwidth),height(rheight){}
Box::~Box()
{
    cout<<"析构"<<endl;
}
void Box::Show()
{
    cout<<"长:"<<length<<endl
        <<"宽:"<<width<<endl
        <<"高;"<<height<<endl;

}
主文件:
#include<iostream>
#include"friends.h"
using namespace std;
using namespace friends;

int main()
{
    Box aa(10.0,20.0,30.0);
    aa.Show();
    Box bb(40.0,50.0,60.0);
    bb.Show();
    cout<<"两高: "<<BoxSurface(aa)<<endl;
    return 0;
}
double BoxSurface(const Box& other1)
{
    return  other1.height+other1.width+other1.length;
}
作者: 俬錛ヤ    时间: 2009-11-4 00:36
我在线等着啊...谢谢你的帮忙呢.




欢迎光临 新微赢技术网 (http://bbs.weiying.cn/) Powered by Discuz! X3.2