读书人

关于友元函数解决办法

发布时间: 2013-07-08 14:13:00 作者: rapoo

关于友元函数

#ifndef TEST_H
#define TEST_H

#include"stdafx.h"
#include<iostream>
#include<string>

using namespace::std;

class A
{
private:
int i;
public:
A():i(1){}
void output(B b)
{
cout<<b.j<<endl;
}
};

class B
{
private:
int j;
public:
B():j(2){}

friend void A::output(B);
};

#endif


请各位大神帮我看一看以上的头文件代码哪里出错了,我只是想把类A的成员函数output设为类B的友元,可是怎么调试也不能成功,很是头疼,请各位大神不吝赐教! 类 友元 成员函数
[解决办法]
A::output使用了B类型的对象,便B这时还没有完全声明。

在A类前对B进行不完整声明,然后把A::output的实现放到B的完整声明之后:

class B;
class A
{
private:
int i;
public:
A():i(1){}
void output(B b);
};

class B
{
private:
int j;
public:
B():j(2){}

friend void A::output(B);
};

void A::output(B b)
{
cout<<b.j<<endl;
}

读书人网 >C++

热点推荐