帮我看一下一个函数的语法。。。

trancebaby 2002-12-05 10:50:30
就是这个struct里的函数IOReq。。。(不会是构造函数吧。。。)
冒号后面的type(rq), SizeRequested(sr), SizeCopied(sc)这个看不懂。。。
帮我解释一下这种用法。。。

struct IOReq
{
#ifdef DRIVER
LIST_ENTRY entry;
PVOID pData;
#else
DWORD Reserved1;
DWORD Reserved2;
DWORD Reserved3;
#endif
ULONG SizeRequested,SizeCopied;
CHAR type;
#ifdef DRIVER
IOReq(CHAR rq,ULONG sr=NULL,ULONG sc=NULL,PVOID orig=NULL)
: type(rq), SizeRequested(sr), SizeCopied(sc)
{
if (SizeCopied)
{
pData=ExAllocatePool(NonPagedPool,SizeCopied);
RtlCopyMemory(pData,orig,SizeCopied);
}
else
pData=NULL;
}
~IOReq() { if (pData) ExFreePool(pData); };
#endif
};
...全文
24 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jian 2002-12-06
  • 打赏
  • 举报
回复
struct和class的差别见: predawning(拂晓)

一个类A作为另一个类B的成员时候,B的对象的建立是自底向上的,就是先调用成员类(如A)的构造函数,再调用主类(如B)的构造函数。写类B的构造函数的时候,在后面加上冒号和成员类的构造函数来实现这一功能。如果有多个成员类,构造函数之间用逗号隔开。
jason138 2002-12-06
  • 打赏
  • 举报
回复
认真看书吧!大多数C++书都有解说的!
predawning 2002-12-05
  • 打赏
  • 举报
回复
呵呵。其实struct 和class有共同点也有不同点。

相同:封装

不同: struct 的默认访问权限是public .
class的默认权限是private.
class demo{ public: ...}= struct demo {};
struct demo {private : ...} = class demo{};
trancebaby 2002-12-05
  • 打赏
  • 举报
回复
呃。。。
就是说这个其实是struct的构造函数??

这么说来struct和class没有区别啰。。。
WillHunt 2002-12-05
  • 打赏
  • 举报
回复
类成员初始化
rockhard 2002-12-05
  • 打赏
  • 举报
回复
同意 WillHunt(willy)和 predawning(拂晓)

64,654

社区成员

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

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