c++ primer的475页有这么一个函数,其中冒号是什么意思

chinadrencher 2008-12-03 12:35:47
#include <iostream.h>

Class GreatThan
{
public:
GreatThan(int sz=6):_size(sz){}//这行是什么意思?构造函数后面给个冒号再加一个方法?
int size(){return _size;}
bool operator() (const string &s1)
{ return s1.size >_size}
private:
int _size;
}
...全文
134 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hyinchina 2008-12-03
  • 打赏
  • 举报
回复
就是
GreatThan(int sz=6)
{
_size = sz;
}
一个意思,效果一样,但编译器执行_size = sz;时的先后顺序有点区别,具体有什么也说不上来,那得深入研究。
lann64 2008-12-03
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 chinadrencher 的回复:]
上面的内容如果正确

GreatThan(int sz=6):_size(sz){}
这行是编译的时刻就初始化_size了


GreatThan(int sz=6){_size = sz;}
是运行时刻初始化的?

这样理解对吗?
[/Quote]
初始化和赋值还是有区别的。
taodm 2008-12-03
  • 打赏
  • 举报
回复
到索引表里找“member initialization list”
jackzhhuang 2008-12-03
  • 打赏
  • 举报
回复
初始化列表,好好看书,说上有说的

这个只不过是把定义和声明写在一起了而已
chinadrencher 2008-12-03
  • 打赏
  • 举报
回复
上面的内容如果正确

GreatThan(int sz=6):_size(sz){}
这行是编译的时刻就初始化_size了


GreatThan(int sz=6){_size = sz;}
是运行时刻初始化的?

这样理解对吗?
chinadrencher 2008-12-03
  • 打赏
  • 举报
回复
GreatThan(int sz=6):_size(sz){}
这行的意思是:用sz去初始化_size?

这么写是不是等价的
GreatThan(int sz=6){_size = sz;}
chinadrencher 2008-12-03
  • 打赏
  • 举报
回复
初始化列表?这书前面什么地方提到这个了?
机智的呆呆 2008-12-03
  • 打赏
  • 举报
回复
搜索初始化列表~~~~
chinadrencher 2008-12-03
  • 打赏
  • 举报
回复
搜了结果和大家对比了一下,差不多,但个别回答有偏差或不严谨
大家搜搜看:)

64,648

社区成员

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

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