首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于友元函数解决办法

2013-07-08 
关于友元函数#ifndef TEST_H#define TEST_H#includestdafx.h#includeiostream#includestringusing n

关于友元函数

#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;
}

热点排行