#include<iostream>
#include<string>
using namespace std;
class boy{
private:
int age1;
string name1;
public:
boy()
{
cout<<"please input data girl"<<endl;
cin>>age1>>name1;
}
friend void visitboygirl(boy& a,girl& b);
};
class girl{
private:
int age;
string name;
public:
girl()
{
cout<<"please input data girl"<<endl;
cin>>age>>name;
}
friend void visitboygirl(boy& a,girl& b);
};
void visitboygirl(boy &a,girl &b)
{
cout<<"girl:"<<b.age<<" "<<b.name<<endl;
cout<<"boy:"<<a.age1<<" "<<a.name1<<endl;
}
int main()
{
boy a;
girl b;
a.visitboygirl(a,b);
b.visitboygirl(a,b);
return 0;
}总是报错,也不知怎么回事,求解释
1 回答
已采纳
朕日理万机
TA贡献27条经验 获得超28个赞
下次记得把错误信息贴上来。
原因:第14行,定义友元函数时,编译器还没看到girl的声明(declaration),不认得这是个什么。因为girl在后面才出现。
解决办法:添加一个前置声明,比如在第3和4行之间:
class girl;
让编译器知道有这么一个类。至于定义(definition)可以在后面找到。
- 1 回答
- 0 关注
- 1476 浏览
添加回答
举报
0/150
提交
取消