error LNK2019: 无法解析的外部符号,该符号在函数 _main 中被引用,怎么回事?
代码如下:
// 头文件 "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++, 不久,对文件包含不太熟!