为了账号安全,请及时绑定邮箱和手机立即绑定

我的这节代码编译错误

error C2011: “Coordinate”:“class”类型重定义?  这是什么问题??

正在回答

2 回答

因为Line.h已经引用了Coordinate.h的头文件,你再引用一次就变成重复引用头文件了

0 回复 有任何疑惑可以回复我~
#1

全栈港 提问者

也就是说 类Line 引用 Coordinate头文件,而demo.cpp 中就不能引用 Coordinate头文件 (或者解释为 demo 中无引用类 Coordinate 就不能引用 Coordinate头文件 ) 类 Coordinate 只在Line.cpp中使用 Coordinate头文件 只能引用一次吗?
2016-01-05 回复 有任何疑惑可以回复我~
#2

絮絮念秋风 回复 全栈港 提问者

C++里面头文件只能引用一次,头文件是在编译的时候进行全文替换的,比如你在Line.h里面引用了头文件Coordinate.h,那么编译的时候会把Coordinate.h的内容全部复制到Line.h,这时候你在demo.cpp再引用一次Coordinate.h,编译的时候又全部复制一遍,此时引用Line.h等于把Line.h全部复制一遍,导致Coordinate.h内容复制了两次,造成变量重复定义,这种错误叫头文件重复引用
2016-01-07 回复 有任何疑惑可以回复我~

找到错误了:demo.cpp中多加了  #include "Coordinate.h"

#include <iostream>

#include <stdlib.h>

#include "Coordinate.h"

#include "Line.h"

using namespace std;



但是这又是为什么那??

求解答


2 回复 有任何疑惑可以回复我~
#1

絮絮念秋风

C++里面头文件只能引用一次,头文件是在编译的时候进行全文替换的,比如你在Line.h里面引用了头文件Coordinate.h,那么编译的时候会把Coordinate.h的内容全部复制到Line.h,这时候你在demo.cpp再引用一次Coordinate.h,编译的时候又全部复制一遍,此时引用Line.h等于把Line.h全部复制一遍,导致Coordinate.h内容复制了两次,造成变量重复定义,这种错误叫头文件重复引用
2016-01-07 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之封装篇(下)
  • 参与学习       70919    人
  • 解答问题       514    个

封装--面向对象三大特征之一,通过案例让C++所学知识融会贯通

进入课程

我的这节代码编译错误

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信