c++“error 找到一个或多个多重定义的符号”

用VS2010进行彻程序设计的时候时候会出现:error LNK1169: 找到一个或多个多重定义的符号。出现这个问题的原因是什么呢?解决办法是什么呢?

操作方法

  • 01

    假设有三个源文件分别是A.h、B.cpp、C.cpp。A.h是头文件,其中声明了三个变量a1、a2、 a3。B.cpp是A.h中所声明的类的实现源代码,C.cpp是主程序文件。B.cpp和C.cpp中均包含头文件 A.h。在编译时,编译能够通过,但链接时出了问题,出现”error   LNK1169:   找到一个或多个多重定义的符号“的错误。 经过分析,确定了这是由于两个实现文件中重复包含了头文件而造成的。可解决方法却始终找不到。要 注意的是,在这里,在头文件中加入#ifndef……#endif这样的预编译命令是没用的,因为这是防止嵌套包含头文件的,而本例中并没有嵌套包含,是 在两个文件中分别包含。因为这三个变量在两个实现文件中都要用到,所以一定要包含在A.h中。

  • 02

    A.h中的三个变量声明前加上extern 关键字,然后在B.cpp中不加extern关键字再次声明这三个变量。于是编译链接顺利通过。其实这是C++中比较基础的问题。还有种情况是定义了函数,但在另个文件中准备用#include打开,但是结果还是会出现。

  • 03

    在a.cpp中定义了一个函数void func(){}希望在b.cpp中调用,调用前就需要进行声明,格式如下:extren void func(); void mian(){    func();}。extern可以表示全局函数或者全局变量的。

  • 04

    在a.cpp中定义了一个变量  int a; 如果要在在b.cpp中使用,使用前就需要进行声明,格式如下:extren int a; void main(){    int b = a;}

(0)

相关推荐

  • 无线网络连不上只显示找到一个无线宽带连接

    现在无线网络比较普及了,笔记本大多也带无线功能,电脑屏幕上显示找到一个无线宽带连接,但无线网络连不上,这种事屡见不鲜,无线网络连不上是怎么回事呢? 问题1 忘记打开浏览器。一些需要付费使用的无线宽带连 ...

  • win7怎么找到一个已安装的软件路径?

    win7找到一个已安装的软件路径方法" 1.在桌面上找到程序的快捷方式 2.在程序图标上右键,鼠标移至程序名称上再右键选择"属性" 3.打开程序的属性窗口进入,在默认的快 ...

  • 迷你世界怎么找到一个方块的生存作者迷你号

    最近很多朋友咨询关于迷你世界怎么找到一个方块的生存作者迷你号的问题,今天的这篇就来聊一聊这个话题,希望可以帮助到有需要的朋友. 操作方法 01 迷你世界是自由度非常高的沙盒游戏. 02 点击游戏里的& ...

  • 如何找到一个靠谱的APP开发团队

    如何找到一个靠谱的APP开发团队 操作方法 01 作为一个APP开发团队所具有的特质首先是拥有一个完整的团队体系:产品经理,开发人员,测试专员,运营团队,UI设计. 02 清楚客户的需求点在哪.开发一 ...

  • ps中如何找到一个圆的圆心

    操作方法 01 如图所示的一个圆. 02 选中圆所在的图层.然后同时按下ctrl+t键.就可以出现如下图所示的样子. 03 这个时候放大一下图片就可以找到圆心所在的位置了.如图所示.

  • 怎么找到一个有用的种子搜索网站

    现在的很多种子搜索网站都不能全面.有效的搜索到我们想要的种子,众多网友由此而苦恼,那今天小编就给大家推荐一个有用的种子搜索网站吧! 操作方法 01 首先打开搜狗浏览器,搜索torrentkitty,然 ...

  • 苹果手机怎么拍摄会动的照片

    相信很多朋友都看过有一些图片只要长按就可以动起来,这就是live图片,如果我们是苹果手机就可以轻松地拍出这样的图片,下面小编就告诉大家应该怎么设置具体如下:1. 首先我们在手机桌面找到相机图标,点击进 ...

  • 怎么查看最近浏览的文档

    很多人在使用电脑的时候都会比较粗心大意,往往把一些文档放在不同的地方,当真正需要的时候就会比较麻烦,今天,小编就来和大家分享一下怎么查看最近浏览的文档,帮助大家快速找到想找的文档. 方法一 01 先说 ...

  • 三星手机指令大全一个不落下

    实用教程..回复查看.....[hide]本帖隐藏的内容一.[ *#6984125*# 行政设定]  1:软件版本2:预先设置按*#73561*#进入安装Default  3:网络和通话设定4:内部提 ...