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已经被定义过了

求解

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;

这二个函数单独写在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: 找到一个或多个多重定义的符号

fatal error LNK1169: 找到一个或多个多重定义的符号

出现“error LNK1169: 找到一个或多个多重定义的符号”的原因