复制构造函数的参数选择

Ank*_*kur 1 c++ pointers reference copy-constructor

我最近在接受采访时询问了复制构造函数的参数.
[编辑]作为实现复制构造函数功能的C++语言的设计者,为什么要在const指针的const指针上选择常量引用参数.

我有一些想法,因为指针可以分配给NULL,这可能在复制构造函数中没有意义(语义上)以及指针变量是一个独立的对象(在效率方面可能不太好)而引用只是实际对象的别名(因此是传递对象的更好方法).
还有其他想法吗?

Ara*_*raK 6

因为Stroustrup希望类类似于原始类型.初始化int变量时:

int x = 5;
int y = x; // Why would you write int y = &x; ?
Run Code Online (Sandbox Code Playgroud)

将常量指针传递给常量对象,与C++带来的内容不一致.C++中的类只是用户定义类型,如果它们不像原始类型那样工作那么它们是什么?

C++编程在没有引用的情况下会很糟糕的另一个例子是运算符重载.想象一下你必须写:

myclass myobj1, myobj2, myobj3;
&myobj3 = &myobj1 + &myobj2;
Run Code Online (Sandbox Code Playgroud)