C++头文件包括了函数的声明.以及在头文件中实现了函数的定义.

那么这个头文件.在别的地方只能被#include一次。

如果在其他的地方 至少两次 #include这个头文件.那么就会出现函数多重定义的问题.

C++在编译头文件的时候.已经找到了该函数的声明 和它的定义.

再次调用头文件的时候。出现两个定义。而编译器不知道该选择哪个定义。所以会出现错误.


#ifndef  TEST_ONE_H
#define TEST_ONE_H
#include <iostream>
class TestOne
{
public:
 TestOne();
 ~TestOne();
 void Speak();
private:
};
void TestOne::Speak()
{
 std::cout << "1";
}
TestOne::TestOne()
{
}
TestOne::~TestOne()
{
}
#endif // ! TEST_ONE_H
这是一个TestOne的头文件.我要在test.cpp中调用他的函数.

#include <iostream>
#include "TestOne.h"            --------------->在这里包含了它的头文件
int main()
{
 TestOne * testone = new TestOne();
 testone->Speak();
 std::cin.get();
 return 0;
}

下面在TestOne.cpp文件中 包含它的头文件

#include"TestOne.h"

那么结果就是 TestOne.cpp 和 test.cpp中包含了共同的头文件.那么就会编译错误

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

这个时候去掉一个就行了.

建议还是头文件填写函数声明.而函数实现放在Cpp文件中.

C++函数多重定义问题相关推荐

  1. C++模板的特例化编译为多重定义问题

    之前遇到了一些关于模板特例化的问题,自己总结一下. 模板的特例化是C++新标准的一个特点,可以自定义某些模板的实现,比如在比较函数compare可以使用less<T>标准库模板比较stri ...

  2. EXCEL中IF函数多重嵌套使用和EXCEL下拉框

    =IF(A1>=60,"及格","不及格") 这是一般通过公式里面IF函数所能做到的,但是EXCEL中没有java中case这样多条件的判断语句,因此需要 ...

  3. 如何解决undefined reference to `bblib_idft_burst_fxp'编译时函数未定义问题

    本文主要提供一种解决问题的思路: 出现的错误如图所示: bblib_idft_burst_fxp在库函数中已经定义了,然而编译的时候显示未定义:经过一天的尝试,最终还是让别人解决了,我在此记录一下方法 ...

  4. C语言函数嵌套定义问题

    几乎所有的C语言教材上都说C语言函数可以嵌套调用,但不可以嵌套定义.实际上,函数能否嵌套定义与编译器有关,在GCC编译器下嵌套定义没问题,可以正常运行,我在code blocks 和 Dev C++两 ...

  5. Angular2 中setTimeOut 回调函数未定义问题

    需求: 在angular2中,调用延时函数,在保存表单成功后,系统下方显示成功信息,在指定时间内若不手动关闭,则提示信息自动关闭. 思路: 保存成功后,调用setTimeout方法,回调函数为关闭提示 ...

  6. html多重判断,多重if函数的使用方法

    EXCE的IF函数中,多重条件判断怎么用?如示例. 1.1若月考核得分高于同区域友商的情况下: 考核打分在95分以上,则甲这个函数可以按照下列思路来编写: 首先,若 A1>=1500 且 B1& ...

  7. matlab私有函数,MATLAB 嵌套函数,子函数,私有函数,重载函数

    MATLAB函数嵌套 MATLAB中M文件有两种类型,脚本M文件和函数M文件.脚本M文件是将可执行程序语句放入M文件中,就像在命令窗口那样,按其语句顺序及逻辑关系执行,可以理解为一般的顺序执行程序语句 ...

  8. 已导入.h文件但仍显示函数未定义

    这里写自定义目录标题 include导入了.h头文件,函数仍显示未定义 include导入了.h头文件,函数仍显示未定义 在linux上跑程序,明明导入了头文件,还是显示未定义函数. 困扰好久,最后发 ...

  9. C++ 符号修饰和函数签名

    前言: (这部分讲的是历史.由来,不想了解的可跳过) 约在20世纪70年代以前,编译器编译源代码产生目标文件时,符号名与相应的变量和函数的名字是一样的.比如一个汇编源代码里面包含了一个函数foo,那么 ...

最新文章

  1. c语言x1=abc什么意思,c语言起步(课件)2.1
  2. 分享--关于学习的一些事儿
  3. 编程范式,程序员的编程世界观
  4. 一天搞定CSS:边框border--02
  5. 如何在endnote列表中显示research note
  6. 使用go来实现类似erlang otp里面的gen_server功能
  7. 盘点程序猿经常说的那些行话,你了解吗?
  8. 前端开发 —— BOM
  9. 数据开放平台的配置管理
  10. 大整数的因子(信息学奥赛一本通-T1171)
  11. c51语言的数据存储模式,第5章项目三单片机存储结构及C51语言.ppt
  12. raft算法_MIT 6.824 分布式系统 | Lab 2A:Raft选举
  13. CVE-2010-2883Adobe Reader和Acrobat CoolType.dll栈缓冲区溢出漏洞分析
  14. 高性价比运维工具推荐
  15. mysql-repeatable read可以避免幻读
  16. Lesson 5英语句子成分
  17. 1.8 30 分钟完成桌球小游戏项目
  18. uni-app 学习: 页面高度设置100%
  19. 谨以此篇献给即将奔三十的人们
  20. HQChart钉钉小程序教程1-创建K线图

热门文章

  1. 为什么要学习Java?|猿代码科技
  2. 机器人平台搭建(一)——机器人的组成
  3. Python云端系统开发——将Python数据分析代码发布到Django网站上
  4. java模糊查询、自动补全的实现
  5. java 分钟数_Java 中计算两个时间的相差分钟数
  6. 临界区、互斥量、事件、信号量四种方式
  7. 微信开发者工具报错 系统错误,错误码-1,undefined 问题解决
  8. 手机软件升级文件如何恢复
  9. pac文件提取服务器,[工具使用] privoxy 实现 PAC 请求过滤
  10. TCP的三次握手与四次挥手基本理解