为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C C++
Leo_clip 2017-03-20 22:35:17
#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 反对 回复 2017-03-20
  • 1 回答
  • 0 关注
  • 1331 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信