头文件里面使用了命名空间,有必要把方法体的实现放在源文件中吗?请高手

a043028448 2009-09-24 02:43:20
头文件使用了命名空间,有必要把方法体的实现放在源文件中吗?
请教高手。
我试的。在类里的话,还可以在源文件去类外实现方法体。
但是,如果在命名空间extern 一个独立的方法。再在源文件实现方法就不行了。

关于这个自己定义的命名空间对于各种情况到底怎么用呢?请高手指点

一共15分了
...全文
349 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 a043028448 的回复:]
哦。请问怎么避免在多个文件中重复#include同一个像 <iostream>这种东西。重复#include是不是不好
[/Quote]

#ifndef
http://blog.ednchina.com/lijin305/23517/message.aspx
飞天御剑流 2009-09-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 a043028448 的回复:]
哦。请问怎么避免在多个文件中重复#include同一个像 <iostream>这种东西。重复#include是不是不好
[/Quote]

标准库头文件已经做了防止重复包含的措施了,不用担心多次包含iostream会出问题,这叫做幂等性
cphj 2009-09-24
  • 打赏
  • 举报
回复
为了避免同一个文件中重复#include同一个头文件出现重定义错误,头文件里面要做保护开关

作了保护之后,怎么重复#include都没关系了
cphj 2009-09-24
  • 打赏
  • 举报
回复
多个文件重复#include同一个头文件,并不是错的

错的是在同一个文件中重复#include同一个头文件
aozhi 2009-09-24
  • 打赏
  • 举报
回复
iostream.h内部有防止重复的代码吧?
a043028448 2009-09-24
  • 打赏
  • 举报
回复
哦。请问怎么避免在多个文件中重复#include同一个像<iostream>这种东西。重复#include是不是不好
oyster2008 2009-09-24
  • 打赏
  • 举报
回复
另外,这些代码没有必要
#ifndef iostream
#include <iostream>
#define iostream
#endif
改成#include<iostream>
oyster2008 2009-09-24
  • 打赏
  • 举报
回复
namespace myspace{
void e_out(void){std::cout < <"e_out" < <std::endl;}
}
a043028448 2009-09-24
  • 打赏
  • 举报
回复
命名空间.h
#ifndef iostream
#include<iostream>
#define iostream
#endif
namespace myspace{
extern void e_out(void);
}
命名空间.cpp
#include"命名空间.h"
void e_out(void){std::cout<<"e_out"<<std::endl;}
aozhi 2009-09-24
  • 打赏
  • 举报
回复
贴source吧

64,646

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧