gpt4 book ai didi

c++ - 复制构造函数的参数选择

转载 作者:行者123 更新时间:2023-11-30 00:42:14 24 4
gpt4 key购买 nike

我最近在一次采访中被问及复制构造函数的参数。
[编辑]作为实现复制构造函数功能的 C++ 语言的设计者,为什么要选择常量引用参数而不是指向常量对象的常量指针。

我有一些想法,比如因为可以将指针分配给 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;

关于c++ - 复制构造函数的参数选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1447939/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com