繁体   English   中英

复制ctor和复制分配运算符const关键字位置

[英]Copy ctor and copy assignment operator const keyword position

我最近注意到一些代码示例中的const关键字在中间(来自受人尊敬的博客网站)转移了,就像这样:

X(X const& that) { .../... }

X& operator=(X const& other) { .../... }

这相当于这种更熟悉的语法吗?

X(const X& that) { .../... }

X& operator=(const X& other) { .../... }

这样切换“ const”的目的是什么?

1)放在哪里都无所谓constconst int & == int const &

2)为什么呢? 这是助记符规则。

int * const常量指针(* 之后的 const

int const * -指向常量值的指针(int 之后的 const )。

因此,其一致性。

这相当于这种更熟悉的语法吗?

是的,这里的两种语法是等效的。

X(X const& x)
X(const X& x)

这表示x别名为X类型的对象,但不能使用 x更改该对象。 (如果您使用一些非const别名,指针等,仍可以对其进行修改。)

您应该从右到左阅读它: xX类型为const的对象的别名(或引用)。

我还建议您阅读C ++常见问题解答:常量正确性

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM