c++ 重复定义
来源:互联网 发布:淘宝助理5.5官方版 编辑:程序博客网 时间:2024/05/17 05:13
今天测试了一下C++下重复定义会出现什么问题,使用gcc和vs2010做了测试,两者的测试结果一样
一共有5个文件,2个头文件,3个cpp文件。内容分别如下
//redefine0.h
#ifndef _REDEFINE0_H_#define _REDEFINE0_H_#include<iostream>using namespace std;//变量声明和定义int i; //错误int j=0; //错误extern int k; //正确extern int k=0;//错误//函数声明和定义void func() //错误{}void fun(); //正确//类声明和定义class Dog //正确{public: void bark();};class Dog //编译通过,最终输出和main中inlude顺序有关,先定义为准{public: void bark(){cout<<"wang"<<endl;}};#endif
//redefine0.cpp
#include "redefine0.h"
//redefine1.h
#ifndef _REDEFINE0_H_#define _REDEFINE0_H_#include<iostream>using namespace std;//变量声明和定义int i; //错误int j=0; //错误extern int k; //通过extern int k=0;//错误//函数声明和定义void func() //错误{}void fun(); //正确//类声明和定义class Dog //正确{public: void bark();};class Dog //编译通过,最终输出和main中inlude顺序有关,先定义为准{public: void bark(){cout<<"wa"<<endl;}};#endif
//redefine1.cpp
#include "redefine1.h"
//redefine.cpp
#include "redefine1.h"#include "redefine0.h"int main(){ Dog d; d.bark();}
在命令行下分别执行
cl redefine.cpp redefine0.cpp redefine1.cpp
g++ redefine.cpp redefine0.cpp redefine1.cpp
编辑得到的结果。
最后是类的定义的结果,目前没发解释,特地写博客记录一下
阅读全文
0 0
- C变量重复定义错误
- C/C++_宏定义多次重复定义
- C/C++中重复定义的问题
- C中防止重复定义时要加下划线
- C语言中重复定义的问题
- C/C++中的重复定义bug
- 【C语言】变量被重复定义
- C 防止 全局 变量 重复 定义 巧妙办法
- [C语言项目]防止头文件和全局变量重复定义
- [C语言]防止头文件和全局变量重复定义
- c语言extern与 重复定义以及common defination
- 关于C/C++头文件重复定义的思考
- c语言重复定义 multiple definition of `Recusion'
- 自定义C/C++头文件以及重复定义的解决
- C/C++重复定义问题的由来和解决方法
- C语言中全局变量的定义及重复包含问题
- C/C++由于头文件重复引入引起的成员或类重复定义的解决办法
- 重复包含和重复定义
- MySQL编码修改--> 支持emoji表情
- C++ const和左值
- python学习(九)之切片和迭代
- Android开发之请求码和结果码
- 前端cookie七天自动登录
- c++ 重复定义
- The type com.fasterxml.jackson.core.JsonProcessingException异常解决
- react native学习资料以及连接的保存
- linux编译动态库和静态库的makefile示例
- file 图片上传
- Android开发蓝牙篇之蓝牙配对、连接与接收数据
- 集训队的LH(简单DP)
- CodeForces
- DragVideo,一种在播放视频时,可以任意拖拽视频的方案