鱼C论坛

 找回密码
 立即注册
查看: 2111|回复: 0

一个简单的程序,能编译但是链接出错!(问题已解决)

[复制链接]
发表于 2012-8-7 15:19:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 肚子饿了 于 2012-8-7 20:25 编辑

我最近刚开始学习C++,今天自己参考一本书写了个小程序
代码如下:
  1. //定义头文件Box.h
  2. #ifndef BOX_H
  3. #define BOX_H
  4. class Box
  5. {
  6. public:
  7. double length;
  8. double breadth;
  9. double height;
  10. Box(double lengthValue,double breadthValue,double heightValue);
  11. double volume();
  12. };
  13. #endif

  14. //定义类中的成员函数,放在Box.cpp文件中
  15. #include "Box.h"
  16. Box::Box(double lengthValue,double breadthValue,double heightValue)
  17. {
  18. length=lengthValue;
  19. breadth=breadthValue;
  20. height=heightValue;
  21. }
  22. double Box::volume()
  23. {
  24. return length*breadth*height;
  25. }
  26. //在第三个文件中计算box的体积
  27. #include "Box.cpp"
  28. #include <iostream>
  29. int main()
  30. {
  31. Box firstBox(80.0,50.0,40.0);
  32. double firstBoxVolume=firstBox.volume();
  33. std::cout<<std::endl;
  34. std::cout<<"volume of first box object is "<<firstBoxVolume<<std::endl;
  35. return 0;
  36. }

复制代码

能正常编译
但是链接出错:
错误提示如下:
1>Boxvolume.obj : error LNK2005: "public: __thiscall Box::Box(double,double,double)" (??0Box@@QAE@NNN@Z) 已经在 Box.obj 中定义
1>Boxvolume.obj : error LNK2005: "public: double __thiscall Box::volume(void)" (
?volume@Box@@QAENXZ) 已经在 Box.obj 中定义
1>E:\实践程序\C++初识\Debug\C++初识.exe : fatal error LNK1169: 找到一个或多个多重定义的符号

我觉得没有问题啊,这本书上好像也是这么写的。

经过度娘的帮助,我把第三个文件中的#include "Box.cpp"改成#include "Box.h"就不会出现多重定义符号的问题了






想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-27 02:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表