QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: marship

喜爱编程的同学请进,挑战自己的C++水平!

[复制链接]
 楼主| 发表于 2005-4-9 10:44:59 | 显示全部楼层
.h文件中一般不会有实现函数,.h文件只是用于(前置)声明,以引导链接程序在目标文件中寻找符号,并没有太多的用处,我刚刚又试了试,现在的编译器(gcc)对此好像没有什么要求了,以前我编的时候,头文件中的函数如果没有inline关键字编译器就会报错,谢谢!
回复

使用道具 举报

发表于 2005-4-9 16:15:59 | 显示全部楼层
gcc 2.8.1 中对于没有 inline 的 .h 中的函数定义不报错。而且,我几个对 C++ 标准颇有研究的朋友也证实说标准中没有这个说法。楼主的出错可能是因为别的原因(譬如符号冲突等链接错误)。
回复

使用道具 举报

发表于 2005-4-11 09:30:01 | 显示全部楼层

Re: 喜爱编程的同学请进,挑战自己的C++水平!

[quote:5e175de805="marship"]

3.MyType必须定义和实现在MyType.h和MyType.cpp文件中。
[/quote]

你出这样的题目说明你不懂模扳的原理。
回复

使用道具 举报

发表于 2005-4-11 09:47:19 | 显示全部楼层
Hehe, finally there's someone saying this out...
回复

使用道具 举报

 楼主| 发表于 2005-4-11 17:01:19 | 显示全部楼层

Re: 喜爱编程的同学请进,挑战自己的C++水平!

[quote:6f61f44984="kakuyou"][quote:6f61f44984="marship"]

3.MyType必须定义和实现在MyType.h和MyType.cpp文件中。
[/quote]

你出这样的题目说明你不懂模扳的原理。[/quote]

的确不懂,请讲讲好吗?谢谢!

由于g++(gcc)没有实现export关键字(即没有实现分离式编译),我做过两个,其中一个就是把MyType定义和实现分别放在MyType.h和MyType.cpp文件中(另一个直接包含了MyType.cpp文件),然后把MyType.cpp编译成动态链接库文件,再加入到系统库搜索目录里,这样从main.cpp文件中包含MyType.h文件,编译时指定刚刚编译动态链接库文件就能实现正常运行了,不知道有什么不对。
回复

使用道具 举报

发表于 2005-4-11 21:13:06 | 显示全部楼层
说实话,我有一段时间没摸过c++了。
新的export关键字我看了几眼,大概好像是导入了一种新的格式的obj 文件来支持分离编译。

现阶段,是无论如何写在cpp文件里都是多此一举,都是要通过C++预编译器来翻译成真正的cpp文件,也就是说,必须带上具体的类的替换才能编译出真正的obj文件,想想著名的STL干吗全写成头文件式的格式吧。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-6 07:31 , Processed in 0.039109 second(s), 13 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表