一个语法问题,谢谢大家

xiaoliaohu 2004-02-01 05:00:07
class Sofa
{
protected:
int length;
public:
Sofa():length(0){}//这里是什么意思?冒号在这里起什么作用?
void SitOn()
{
cout<<"Sitting...\n";
}
void SetLength(int i){length=i;}
};
...全文
46 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Wolf0403 2004-02-03
  • 打赏
  • 举报
回复
如果被初始化的对象是一个类对象,那么这里会调用带参数的构造函数,而不是默认构造函数然后是 operator=,效率更高。const 对象和 ref 都必须在这里初始化
xiaoliaohu 2004-02-02
  • 打赏
  • 举报
回复
此贴已结,谢谢大家的回答。
byyyyy 2004-02-01
  • 打赏
  • 举报
回复
构造函数初始化。
相当于length=0;
angelo23 2004-02-01
  • 打赏
  • 举报
回复
构造函数初始化一个值的方式,在这里就是把length初始化为0,冒号的作用嘛……语法规定吧,呵呵
Jinhao 2004-02-01
  • 打赏
  • 举报
回复
Sofa():length(0){} //用0实例化length
它和
Sofa(){
length=0;
}
的区别在于,第一个是直接用0构造length,第二个是先构造length,其值不确定,接着在用0去赋值。
所以第一个方法的效率明显比第二个高
积木 2004-02-01
  • 打赏
  • 举报
回复
初始化成员列表……
fansses 2004-02-01
  • 打赏
  • 举报
回复
给length赋值0

64,281

社区成员

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

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