#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 關注
- 1647 瀏覽
添加回答
舉報
0/150
提交
取消