c++友元函数的问题,求解

#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;
}
总是报错,也不知怎么回事,求解释


Leo_clip
浏览 1477回答 1
1回答

朕日理万机

下次记得把错误信息贴上来。原因:第14行,定义友元函数时,编译器还没看到girl的声明(declaration),不认得这是个什么。因为girl在后面才出现。解决办法:添加一个前置声明,比如在第3和4行之间:class girl;让编译器知道有这么一个类。至于定义(definition)可以在后面找到。
打开App,查看更多内容
随时随地看视频慕课网APP