返回   cpper编程论坛 > Zion/测试
注册账号 论坛帮助 会员列表 日历事件 搜索 今日新帖 标记版面已读

Zion/测试 惹人烦的东西这边来

回复
 
LinkBack 主题工具 显示模式
  #1 (permalink)  
旧 2004-01-19
高级会员
 
注册日期: 2003-08-02
帖子: 105
koolplay 正向着好的方向发展
默认 include

已知2个类A和B,A类在A.h中申明,在A.cpp中实现。B类在B.h中申明,在B.cpp中实现。B的一个成员函数中(在B.cpp中)定义了一个A类,那么B.cpp开头部分应该把有关A类的文件包含进来。但问题是到底应该包含A.h还是A.cpp呢?一本书上是把A.h包含进来,经试验是可以的。但我觉得有点奇怪:A.h里并没有#include A.cpp的语句,B.cpp只把A.h包含进来,那么A类的成员函数的实现是怎么找到的呢?我觉得好像应该把A.cpp包含进来才对。
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
回复时引用此帖
  #2 (permalink)  
旧 2004-01-19
高级会员
 
注册日期: 2002-09-19
帖子: 839
文章: 7
tomato 正向着好的方向发展
默认

include了a.h之后可以通过编译吧?
这说明编译需要的东西都有了
但是链接就不成了
因为没有函数的实现

所以命令行应该写cl a.cpp b.cpp
这样所有信息都有了

看看TC++PL中的一章介绍C++头文件的吧
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
回复时引用此帖
  #3 (permalink)  
旧 2004-01-20
高级会员
 
注册日期: 2003-09-21
帖子: 104
完美废人 正向着好的方向发展
默认

楼主,用的是 IDE 环境吧?现在假设工程中只有 a.h, a.cpp, b.h, b.cpp 然后在 b.cpp 中定义了一个 A 的对象,那么它需要 class A 的完整声明,所以需要在 b.cpp 中包含 a.h。编译的时候,a.h + a.cpp -> a.o, b.h + b.cpp ->b.o 然后在链接的时候把 a.o 和 b.o 链接成一个 exe。在链接之前,b.o 中的代码虽然知道了 class A 的定义,但是没有它的实现。如果单独链接 b.o 成 exe 就会报错,说 undefined reference 云云。。。可以从工程中删除 a.cpp 试验。
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
回复时引用此帖
  #4 (permalink)  
旧 2004-01-20
高级会员
 
注册日期: 2003-08-02
帖子: 105
koolplay 正向着好的方向发展
默认

就是说是编译器自己找的咯?
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
回复时引用此帖
  #5 (permalink)  
旧 2004-01-21
高级会员
 
注册日期: 2003-09-21
帖子: 104
完美废人 正向着好的方向发展
默认

楼主:如果你手写 makefile,你会清楚很多的。
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
回复时引用此帖
回复

书签
主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码
Trackbacks are 启用
Pingbacks are 启用
Refbacks are 启用


相似的主题
主题 主题作者 版面 回复 最后发表
C++模板元和函数式编程实践(二) TiGEr.zZ C/CPP/TMP/GP 0 2005-07-27 02:27 AM
C++模板元和函数式编程实践 TiGEr.zZ C/CPP/TMP/GP 0 2005-07-20 08:58 PM
捕捉鼠标输入的方法 bankrock 技术杂烩 33 2005-06-16 03:32 PM
搜索文件的iterator SpitFire 技术杂烩 2 2004-06-01 01:08 PM
与树实现无关的树iterator ajoo 技术杂烩 74 2003-06-27 01:20 PM


所有时间均为格林尼治时间 +9。现在的时间是 08:50 AM


Powered by vBulletin® 版本 3.7.0
版权所有 ©2000 - 2008,Jelsoft Enterprises Ltd.
(C) Copy Right All Right Reserved 2001 - 2007

Search Engine Friendly URLs by vBSEO 3.1.0