C++为什么没有重复定义错误?
来源:互联网 发布:mac电脑发热严重 编辑:程序博客网 时间:2024/05/17 22:35
今天在看到一个.cpp文件,这个cpp类的定义和函数的实现写在一起,我就在想这样的有什么劣势。很明显,就是在包含的时候出现重复定义。
于是又想到当他们分离的时候,为什么不会出现重复定义呢?例如:
// 1.h
class A
{
int a;
}
// void int add(){}
//2.cpp
#include"1.h"
//3.cpp
#include"1.h"
void main()
{
}
既然2.obj和3.obj都包含有类A,但是为什么不会出现问题呢? 而如果加上函数add,为什么会出现重复定义呢?是不是思想有点奇怪了,在思考为什么不出现重复定义。
想了一会也想不通,就出去方便了一下,在出去途中,突然想到从类型上进行分析:
函数add是一个连接时期的东西;而类型A是编译时期的东西;从这个方面分析,这个问题太简单了......Mark一下:如果你在一个cpp中包含同一个头文件两次(没有#pragma once),也是会出现错误的,这是编译时期的重复定义。
- C++为什么没有重复定义错误?
- C变量重复定义错误
- 编译错误。 没有定义.......
- 【浅析】把实现放在头文件中的函数模板,为什么没有发生重定义错误
- Winsock 重复定义的错误
- C++文件重复定义错误
- LNK2005错误——重复定义错误
- LNK2005错误——重复定义错误
- LNK2005错误——重复定义错误
- STM32系统时钟为什么没有定义呢
- CSS百分比定义高度为什么没有效果
- 为什么C 没有嵌套函数?
- 多个.c .h文件时出现的重复定义错误问题
- 【转】多个.c .h文件时出现的重复定义错误问题
- C语言代码,求高手解答,为什么没有错误,但是结果不对
- error link 2005 重复定义错误
- Hibernate 重复定义字段的错误
- VC 编译 重复定义错误解决
- 在路上
- jqGrid过去调试记录
- 工具分享:Jasmine(JavaScript单元测试工具)
- 英语练习109 We need fresh air
- 笔记-2006-Subword-based Tagging by Conditional Random Fields for Chinese Word Segmentation
- C++为什么没有重复定义错误?
- __FILE__,__LINE__,FUNCTION__实现代码跟踪调试
- Java异常总结
- 将一个整数逆序输出,分别给出递归和非递归算法
- 集体户落户指南 ( by quqi99 )
- 【数据结构】建立一个链队,实现该链队的入队和出队操作。
- LightOJ 1108 - Instant View of Big Bang(SPFA)
- c#调用c++带有回调函数方法的实现
- 上中下三栏自适应100%高度