友元类问题

Dreamz 2007-12-02 06:56:02
下午做一个友元类的作业,要求2个无关的类Engine和Fuel,要使Fuel成员可以访问Engine中的私有和保护成员,我写的代码如下,无法通过连接,请问是哪里出了问题?

#include<iostream>
using namespace std;

class Engine
{
public:
Engine(int m_=0,int n_=0)
{
m=m_;
n=n_;
}
~Engine() {}
friend class Fuel;
private:
int m;
protected:
int n;
};

class Fuel
{
public:
Fuel();
~Fuel() {}
void GetEngine()
{cout<<e.m<<e.n<<endl;}
private:
Engine e;
};

int main()
{
Engine a(5,4);
Fuel b;
b.GetEngine();
return 0;
}

出错提示如下:
5_7.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall Fuel::Fuel(void)" (??0Fuel@@QAE@XZ),该符号在函数 _main 中被引用
E:\Visual Studio 2005\Projects\Exercise\5_7\Debug\5_7.exe : fatal error LNK1120: 1 个无法解析的外部命令
...全文
109 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
starwalker 2007-12-02
  • 打赏
  • 举报
回复

#include<iostream>
using namespace std;

class Engine
{
public:
Engine(int m_=0,int n_=0)
{
m=m_;
n=n_;
}
~Engine() {}
friend class Fuel;
private:
int m;
protected:
int n;
};

class Fuel
{
public:
Fuel() {} // 你这个函数没定义
~Fuel() {}
void GetEngine()
{cout<<e.m<<e.n<<endl;}
private:
Engine e;
};

int main()
{
Engine a(5,4);
Fuel b;
b.GetEngine();
return 0;
}

Dreamz 2007-12-02
  • 打赏
  • 举报
回复
晕了,原来是这种低级错误-_-|||多谢2位啦:)
effective_person 2007-12-02
  • 打赏
  • 举报
回复

#include<iostream>
using namespace std;

class Engine
{
public:
Engine(int m_=0,int n_=0)
{
m=m_;
n=n_;
}
~Engine() {}
friend class Fuel;
private:
int m;
protected:
int n;
};

class Fuel
{
public:
Fuel(){};//没实现构造函数
~Fuel() {}
void GetEngine()
{
cout<<e.m<<e.n<<endl;
}
private:
Engine e;
};

int main()
{
Engine a(5,4);
Fuel b;
b.GetEngine();
return 0;
}
ryfdizuo 2007-12-02
  • 打赏
  • 举报
回复

#include<iostream>
using namespace std;

class Engine
{
public:
Engine(int m_=0,int n_=0)
{
m=m_;
n=n_;
}
~Engine() {}
friend class Fuel;
private:
int m;
protected:
int n;
};

class Fuel
{
public:
Fuel(){}; //增加{}
~Fuel() {}
void GetEngine()
{cout<<e.m<<e.n<<endl;}
private:
Engine e;
};

int main()
{
Engine a(5,4);
Fuel b;
b.GetEngine();
return 0;
}

与友员类无关
^_^

65,183

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧