error LNK2019: 无法解析的外部符号,该符号在函数 _main 中被引用,怎么回事?

抑郁前夕的小绵羊 2011-09-19 12:02:48
代码如下:
// 头文件 "stdAfx.h"
#include <iostream>
using namespace std;
#include <math.h>


class triple {
private:
float* data;
public:
triple(float a, float b, float c);
~triple() { delete[] data; }
triple(const triple& t);
triple& operator=(const triple& t);

friend triple add(const triple&, const triple&);
void print() const {
cout<<data[0]<<" "<<data[1]<<" "<<data[2]<<endl;
}
};


//类成员函数实现文件 "CLASS.cpp"
#include "stdAfx.h"

inline triple::triple(float a, float b, float c) {
data = new float [3];
data[0] = a; data[1] = b; data[2] = c;
}

inline triple::triple(const triple& t) {
data = new float [3];
for(int i = 0; i < 3; i++)
data[i] = t.data[i];
}

inline triple& triple::operator=(const triple& t) {
if(this != &t)
for(int i = 0; i < 3; i++)
data[i] = t.data[i];
return *this;
}

inline triple add(const triple& t, const triple& s) {
return triple(t.data[0] + s.data[0] , t.data[1] + s.data[1] , t.data[2] + s.data[2] );
}




//主函数实现 "main.cpp"
#include <winsock2.h>
#pragma comment(lib, "WS2_32") //这两行代码是我看网上给的解决方法,可是不管用
//于是我就把它们全放在一个文件,然后就可以了,求解释,和解决方法
//#pragma comment(lib, "ws2_32.lib")
#include "stdAfx.h"

int main() {
triple aaa(5,6,7);
triple bbb(10,20,30);
triple ccc = aaa;
triple ddd = add(aaa, bbb);

ccc = add(aaa, ddd);
ccc = ccc;
ccc.print();
system("PAUSE");
return 0;
}


//这里运行结果
1>------ 已启动生成: 项目: test, 配置: Debug Win32 ------
1>生成启动时间为 2011/9/18 23:48:47。
1>InitializeBuildStatus:
1> 正在对“Debug\test.unsuccessfulbuild”执行 Touch 任务。
1>ClCompile:
1> M1.cpp
1>ManifestResourceCompile:
1> 所有输出均为最新。
1>M1.obj : error LNK2019: 无法解析的外部符号 "public: class triple & __thiscall triple::operator=(class triple const &)" (??4triple@@QAEAAV0@ABV0@@Z),该符号在函数 _main 中被引用
1>M1.obj : error LNK2019: 无法解析的外部符号 "class triple __cdecl add(class triple const &,class triple const &)" (?add@@YA?AVtriple@@ABV1@0@Z),该符号在函数 _main 中被引用
1>M1.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall triple::triple(class triple const &)" (??0triple@@QAE@ABV0@@Z),该符号在函数 _main 中被引用
1>M1.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall triple::triple(float,float,float)" (??0triple@@QAE@MMM@Z),该符号在函数 _main 中被引用
1>C:\Users\Max\documents\visual studio 2010\Projects\test\Debug\test.exe : fatal error LNK1120: 4 个无法解析的外部命令
1>
1>生成失败。
1>
1>已用时间 00:00:04.71
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========



求各位解释简单易懂点,小弟才学C++, 不久,对文件包含不太熟!
...全文
2429 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ouyh12345 2011-09-19
  • 打赏
  • 举报
回复
#include "stdAfx.h"
得放在所有包含文件的开始处
  • 打赏
  • 举报
回复
上面写的,除了 "stdAfx.h" 文件外,其他文件都包含了 #include "stdAfx.h" ,至于 CLASS.cpp ,我是放在工程中进行编译的,要不你们把程序拷下来,在你们机器上运行下,看看结果!下面是我今天编译的结果 :
>------ 已启动生成: 项目: test, 配置: Debug Win32 ------
1>生成启动时间为 2011/9/19 21:46:33。
1>InitializeBuildStatus:
1> 正在对“Debug\test.unsuccessfulbuild”执行 Touch 任务。
1>ClCompile:
1> CLASS3.cpp
1> 正在生成代码...
1> 正在编译...
1> M1.cpp
1> 正在生成代码...
1>ManifestResourceCompile:
1> 所有输出均为最新。
1>M1.obj : error LNK2019: 无法解析的外部符号 "public: class triple & __thiscall triple::operator=(class triple const &)" (??4triple@@QAEAAV0@ABV0@@Z),该符号在函数 _main 中被引用
1>M1.obj : error LNK2019: 无法解析的外部符号 "class triple __cdecl add(class triple const &,class triple const &)" (?add@@YA?AVtriple@@ABV1@0@Z),该符号在函数 _main 中被引用
1>M1.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall triple::triple(class triple const &)" (??0triple@@QAE@ABV0@@Z),该符号在函数 _main 中被引用
1>M1.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall triple::triple(float,float,float)" (??0triple@@QAE@MMM@Z),该符号在函数 _main 中被引用
1>C:\Users\Max\documents\visual studio 2010\Projects\test\Debug\test.exe : fatal error LNK1120: 4 个无法解析的外部命令
1>
1>生成失败。
1>
1>已用时间 00:00:03.75
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
xunxun 2011-09-19
  • 打赏
  • 举报
回复
我只看到了你编译了M1.cpp

其他都没编译
ryfdizuo 2011-09-19
  • 打赏
  • 举报
回复
CLASS.cpp是否包含在工程中,

65,187

社区成员

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

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