【发布时间】:2009-09-19 06:18:44
【问题描述】:
我最近在一次采访中被问及复制构造函数的参数。
[已编辑]
作为实现复制构造函数功能的 C++ 语言的设计者,为什么要选择常量引用参数而不是指向 const 对象的 const 指针。
我有一些想法,比如可以将指针分配给 NULL,这在复制构造函数中可能没有意义(语义上)以及指针变量是一个独立对象的事实(这在术语上可能不好效率),而引用只是实际对象的别名(因此是传递对象的更好方法)。
还有其他想法吗?
【问题讨论】:
-
刚刚获得了见解。因为在复制构造函数中,我们需要原始对象是不可变的,为此我们使用 const 引用。但是,如果复制构造函数使用 const 指针指向 const 对象格式,则对象的用户首先需要声明一个独立对象(指向 const 的 const 指针),然后用对象的地址对其进行初始化我们需要一个副本,然后使用复制构造函数(足以让他/她皱眉),因为在 c++ 中不允许将 const 指针临时作为参数。有意义吗?
标签: c++ pointers reference copy-constructor