在学VC,小菜问几个问题。简单的。。。

jinjunweiruan 2008-06-24 07:01:11
1.书上出现了一个叫做require()的函数,请问这个函数干啥的啊?
2.Member(int x=0) : i(x),j(x),k(x) {}.这个好象是初始化的列表吧...他干啥用的啊??
谢谢大吓门!!小第谢谢了饿...
...全文
66 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
e_sharp 2008-06-24
  • 打赏
  • 举报
回复
Member(int x=0) : i(x),j(x),k(x) {}
作用是:初始Member的成员变量:i j k ,相当于
Member (int x=0) {
i=x;
j=x;
k=x;
}

对于内置类型,以上2种形式没有什么区别,效率上也没有影响。
如果是对象的话,使用初始化列表可以提高效率。

例如:
1. Member (const A& a) : m_a(a) {}
用A的拷贝构造函数完成对m_a的初始化。

2. Member (const A& a) {
m_a = a;
}
先调用A的默认构造函数初始化m_a,然后在 m_a = a中,调用operator=完成赋值。

效率上,1的比2的要好。

K行天下 2008-06-24
  • 打赏
  • 举报
回复
2.Member(int x=0) : i(x),j(x),k(x) {}.这个好象是初始化的列表吧...他干啥用的啊??


初始化列表,用于构造函数初始化其成员, 有以下几种成员必须使用初始化列表:
1) 引用成员类型,
2) const成员类型
3) 缺少默认构造函数的类类型成员(如果没有构造函数,系统默认提供一个,就算有默认构造函数; 只在定义了非默认构造函数,但是又没有重载默认构造函数的情形)

解释原因:可以初始化const对象或引用类型的对象,但是不能对它们赋值!!!!
csdn5211 2008-06-24
  • 打赏
  • 举报
回复
既然知道叫初始化列表,为何不到c++书上找这个东西,别说你的c++书后面没有索引。
foxhill 2008-06-24
  • 打赏
  • 举报
回复
Include和Require函数实现代码重用,
require()函数工作方式与XSSI相类似;不管在程序的哪个部分使用了这个函数,只有程序一开始运行,头文件的内容就被作为程序本身的一部分来处理。如果在一个条件判定语句中使用了require()函数,那么即使这个条件即使不为真,头文件也会被包含进来。

64,643

社区成员

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

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