一段新奇的c++代码

zhenwenw 2011-12-17 05:11:19
上代码:
在os.h中的一段代码:
ClassTP(TSysMemStat, PSysMemStat)//{
private:
MEMORYSTATUSEX MemStat;
public:
TSysMemStat(){Refresh();}
~TSysMemStat(){}
TSysMemStat(TSIn&){Fail;}
static TPt<TSysMemStat> Load(TSIn&){Fail; return NULL;}
void Save(TSOut&){Fail;}

TSysMemStat& operator=(const TSysMemStat&){Fail; return *this;}

void Refresh(){
MemStat.dwLength=sizeof(MEMORYSTATUSEX);
GlobalMemoryStatusEx(&MemStat);}

uint64 GetLoad(){ // percent of memory in use
return uint64(MemStat.dwMemoryLoad);}
...

TStr GetLoadStr();
...

static bool Is32Bit(){return sizeof(char*)==4;}
static bool Is64Bit(){return sizeof(char*)==8;}
};
为什么它可以在.h文件中直接写函数执行内容,而不是申明函数。这段代码是什么格式?我菜鸟,求解答。
...全文
93 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
modicum_lf 2011-12-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 yisikaipu 的回复:]
引用楼主 zhenwenw 的回复:为什么它可以在.h文件中直接写函数执行内容,而不是申明函数。这段代码是什么格式?

没有规定不能在.h文件里写内容,何况内联和模板等情况还就是得写在.h文件里

不能在.h文件里写内容是考虑到被多次包含会导致重复定义的情况
[/Quote]

++

yisikaipu 2011-12-17
  • 打赏
  • 举报
回复
[Quote=引用楼主 zhenwenw 的回复:]为什么它可以在.h文件中直接写函数执行内容,而不是申明函数。这段代码是什么格式?[/Quote]

没有规定不能在.h文件里写内容,何况内联和模板等情况还就是得写在.h文件里

不能在.h文件里写内容是考虑到被多次包含会导致重复定义的情况
柯本 2011-12-17
  • 打赏
  • 举报
回复
C++的常见代码,看不出新奇在哪里
很多类的inline函数都是这么写的
vilnies 2011-12-17
  • 打赏
  • 举报
回复
不影响连接就没问题了,类成员函数和static是可以这样做的

64,654

社区成员

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

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