我最近在关于拷贝构造函数的参数的采访要求。结果 将帖子 由于C ++实现的拷贝构造函数功能的语言设计师,你为什么会选择在一个const指向const对象恒定的参考参数。

我有几个想法,因为像一个指针可以被分配到NULL这可能是没有意义的(语义)的拷贝构造函数和一个事实,即指针变量是一个独立的对象(这可能不会是好的方面的效率),而参考仅仅是一个别名的实际对象(因此有更好的方式传递对象)。结果 任何其他的想法?

有帮助吗?

解决方案

由于Stroustrup的通缉类像原始类型。当初始化int变量:

int x = 5;
int y = x; // Why would you write int y = &x; ?

传递恒定指针恒定对象,是什么C ++用C赞助商C.类不一致++只是用户定义的类型,如果他们不象原始类型则它们是什么工作?

又如其中编程在C ++中。将惨而不引用是运营商过载。想象一下,你必须写:

myclass myobj1, myobj2, myobj3;
&myobj3 = &myobj1 + &myobj2;

其他提示

这是一个语法上的方便。

最常见的使用情况,当一个拷贝构造函数被调用时的参数是按值传递,什么是返回值。

如果拷贝构造函数了,这是一个指针,而不是一个参考的参数,你需要以调用拷贝构造函数,这将是尴尬申请运营商的地址的。

我认为,重要的原因并不在拷贝构造函数中使用指针是临时变量如何绑定到右值。为指针,将有可能对指针保存到临时后来与未定义的行为使用它,以引用这是很难存储和使用的引用,使用更方便的实际值。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top