[英]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)放在哪里都无所谓const
: const int & == int const &
2)为什么呢? 这是助记符规则。
int * const
常量指针(* 之后的 const
)
int const *
-指向常量值的指针(int 之后的 const
)。
因此,其一致性。
这相当于这种更熟悉的语法吗?
是的,这里的两种语法是等效的。
X(X const& x)
X(const X& x)
这表示x
别名为X
类型的对象,但不能使用 x
更改该对象。 (如果您使用一些非const
别名,指针等,仍可以对其进行修改。)
您应该从右到左阅读它: x
是X
类型为const
的对象的别名(或引用)。
我还建议您阅读C ++常见问题解答:常量正确性
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.