#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;
}總是報(bào)錯(cuò),也不知怎么回事,求解釋
1 回答
已采納

朕日理萬機(jī)
TA貢獻(xiàn)27條經(jīng)驗(yàn) 獲得超28個(gè)贊
下次記得把錯(cuò)誤信息貼上來。
原因:第14行,定義友元函數(shù)時(shí),編譯器還沒看到girl的聲明(declaration),不認(rèn)得這是個(gè)什么。因?yàn)間irl在后面才出現(xiàn)。
解決辦法:添加一個(gè)前置聲明,比如在第3和4行之間:
class?girl;
讓編譯器知道有這么一個(gè)類。至于定義(definition)可以在后面找到。
- 1 回答
- 0 關(guān)注
- 1568 瀏覽
添加回答
舉報(bào)
0/150
提交
取消