LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 750|回复: 1

头文件中是否应该包含对象定义?

[复制链接]
发表于 2006-11-3 23:38:43 | 显示全部楼层 |阅读模式
在Lippman的《C++ Primer》中说头文件中不应该包含非inline函数和对象的定义,这样容易导致多重定义的问题。但是,我们通常将类的定义放在头文件中,然后使用#ifndef来解决重复定义的问题。我认为对于头文件来说,类的定义和对象定义应该是一样的,重复定义都会导致错误。所以,使用#ifndef也应该可以避免在头文件中定义对象而导致的多重定义。
请大家指教。

另外,我一直认为头文件应该是放声明的地方,cpp文件中放定义。但是却习惯将类的定义放在头文件中,这是为什么呢?

谢谢。
发表于 2006-11-4 01:57:14 | 显示全部楼层
多个文件的时候,在头文件里申明对象可能会导致编译通过,而连接时报重复定义的错误
回复 支持 反对

使用道具 举报

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

本版积分规则

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