函数void text(std::ostream&) const怎么理解?
函数的std::ostream&的形参哪里去了?这种声明方式用在什么情况下,和voidtext(std::ostream&os)const相比有什么差别?声明中没有形参,...
函数的std::ostream&的形参哪里去了?
这种声明方式用在什么情况下,
和void text(std::ostream& os) const相比有什么差别?
声明中没有形参,这是C++里的规定,还是C语言中也可以这么用? 展开
这种声明方式用在什么情况下,
和void text(std::ostream& os) const相比有什么差别?
声明中没有形参,这是C++里的规定,还是C语言中也可以这么用? 展开
2个回答
展开全部
这是一个函数声明,声明中的形参完全可以省略,但是这个做法并不推荐,因为函数的参数有着自注释的作用,把函数的参数写上而不省略有助于函数功能 和使用的理解,
而且函数的声明亦即函数的原型,起到了函数模板依据的作用, 你的实现部分,和你的调用部分都会与声明部分进行参数的静态类型检查,是函数调用的更加安全。
而且函数名和标签(参数数量、类型、顺序)包括最后的const。都是函数签名式的部分,注意(唯有函数的返回值不是函数签名式 的一部分),const的位置有点怪异,但是只能放在这个地方,因为只有这里才表示这个函数本是常量型的。如果放在最前面就会表示:返回 的参数是常量型的。
所以这个在声明的时候,写不写参数没有任何区别。
而且函数的声明亦即函数的原型,起到了函数模板依据的作用, 你的实现部分,和你的调用部分都会与声明部分进行参数的静态类型检查,是函数调用的更加安全。
而且函数名和标签(参数数量、类型、顺序)包括最后的const。都是函数签名式的部分,注意(唯有函数的返回值不是函数签名式 的一部分),const的位置有点怪异,但是只能放在这个地方,因为只有这里才表示这个函数本是常量型的。如果放在最前面就会表示:返回 的参数是常量型的。
所以这个在声明的时候,写不写参数没有任何区别。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询