error 找到一个或多个多重定义的符号的解决方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了error 找到一个或多个多重定义的符号的解决方法相关的知识,希望对你有一定的参考价值。
头文件stdafx.h
#include "targetver.h"
#include <iostream>
#include <stdio.h>
#include <tchar.h>
using namespace std;
void turn(int &tu1, int &tu2)
tu1 += tu2;
tu2 = tu1 - tu2;
tu1 -= tu2;
int addtf(int &x, int &y, int &z)
int sum;
if (x > y)
turn(x, y);
if (y > z)
turn(y, z);
sum = (x + y + z) / 3;
return sum;
主文件
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
int a, b, c,d;
cin >> a >> b >> c;
d = addtf(a, b, c);
cout << a << " " << b << " " << c << endl<<d<<endl;
system("pause");
return 0;
结果就会出现提示在主文件中addtf与turn已经被定义过了
求解
tu1 += tu2;
tu2 = tu1 - tu2;
tu1 -= tu2;
int addtf(int &x, int &y, int &z)
int sum;
if (x > y)
turn(x, y);
if (y > z)
turn(y, z);
sum = (x + y + z) / 3;
return sum;
这二个函数单独写在c文件里,然后定义一个包含这二个函数声明的h文件。
在主文件里面包含这个h文件就好了。
追问麻烦问下怎么定义一个包含这二个函数声明的h文件,新手自学不太明白谢谢
追答给你个例子:
//-------文件名为:my_h.h------------------------------#ifndef my_h
#define my_h
void turn(int &tu1, int &tu2);
int addtf(int &x, int &y, int &z);
#endif
//-----------------------------------------------------
//-------文件名为:function.cpp------------------------------
#include <iostream>
#include <stdio.h>
#include <tchar.h>
using namespace std;
void turn(int &tu1, int &tu2)
tu1 += tu2;
tu2 = tu1 - tu2;
tu1 -= tu2;
int addtf(int &x, int &y, int &z)
int sum;
if (x > y)
turn(x, y);
if (y > z)
turn(y, z);
sum = (x + y + z) / 3;
return sum;
//-----------------------------------------------------
//-----------文件名:main.cpp------主文件--------------
#include "my_h.h"
int _tmain(int argc, _TCHAR* argv[])
int a, b, c,d;
cin >> a >> b >> c;
d = addtf(a, b, c);
cout << a << " " << b << " " << c << endl<<d<<endl;
system("pause");
return 0;
//-----------------------------------------------------
就是你要使用的函数放在一个CPP里面,然后用一个H文件声明,主程序就直接包含这个H文件就好了。
参考技术A 你能把函数的源代码写在.h 文件里面吗?h文件里只能有函数声明 一般不能有实现,实现要放在cpp里
以上是关于error 找到一个或多个多重定义的符号的解决方法的主要内容,如果未能解决你的问题,请参考以下文章
vc2008中 fatal error LNK1169: 找到一个或多个多重定义的符号
已经在其他文件中定义, fatal error LNK1169: 找到一个或多个多重定义的符号
全局变量重复定义,fatal error LNK1169: 找到一个或多个多重定义的符号
fatal error LNK1169: 找到一个或多个多重定义的符号