复制 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)把const
放在哪里并不重要:const int & == int const &
2)为什么?这是助记符规则。
int * const
- 常量指针(const
*之后
int const *
- 指向常量值的指针(const
int 之后)。
所以,它是为了一致性。
是的这是否等同于这种更熟悉的语法?
,这里的两种语法是等效的。
X(X const& x)
X(const X& x)
这表示x
为类型为 X
的对象提供别名,但不能使用 x
更改该对象。(如果使用一些非const
别名、指针等,仍然可以修改它。
您应该从右到左阅读它:x
是对const
的 X
类型的对象的别名(或引用)。
我还建议您阅读C++常见问题解答:常量正确性
相关文章:
- Visual Studio 2015:Extern "C" 和 "export" 关键字
- C++17复制构造函数,在std::unordereded_map上进行深度复制
- C++中的"inline"关键字
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 使用strcpy将char数组的元素复制到另一个数组
- 是否可以初始化不可复制类型的成员变量(或基类)
- 如何确保C++函数在定义之前声明(如override关键字)
- 为什么在C++中使用私有复制构造函数与删除复制构造函数
- C++ Windows 驱动程序MSB3030无法复制该文件,因为它找不到
- 复制列表初始化的隐式转换的等级是多少
- 当从函数参数中的临时值调用复制构造函数时
- 有可能在Armadillo中复制MATLAB circshift方法吗
- 复制几乎为空的数组的最快方法
- 避免使用 auto 关键字从字面上复制 const 和非 const 的代码?
- 使用 "using" 关键字继承基类的复制和移动构造函数
- 在构造函数中使用关键字 "this" 时定义复制构造函数
- 显式关键字,移动构造函数和复制构造函数,并禁用移动和复制构造函数
- 使用静态关键字复制符号和函数
- 复制 ctor 和复制赋值运算符 const 关键字位置
- 'explicit' g ++ 中的关键字对简单构造函数(不是复制/赋值构造函数)没有影响?