gpt4 book ai didi

C++ Primer Plus this 指针示例

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:34:09 26 4
gpt4 key购买 nike

很抱歉转向这里提出这样一个基本问题,但有人可以快速为我解决这个问题吗?然后我会删除线程,以免造成新手困惑。

在以下来自 C++ Primer Plus 文本的示例中,函数声明中的 & 运算符是否指定函数返回指向 Stock 对象的指针?为什么函数继续按值返回 s 和 this 对象呢?

"...然而,您想要返回的不是 this,因为 this 是对象的地址。您想要返回对象本身,它由 *this 表示。(回想一下应用取消引用指针的运算符 * 产生指针指向的值。)现在您可以通过使用 *this 作为调用对象的别名来完成方法定义。”

const Stock & Stock::topval(const Stock & s) const {

if (s.total_val > total_val)

return s; // argument object

else

return *this; // invoking object
}

最佳答案

是的,这令人困惑。 C++ 大量重载每个符号,因为键盘上没有足够的符号。

&符号&用于两种不同的含义,概念上相似,但实际上是完全不同的语言特征。

含义1:引用类型声明。将一个符号附加到类型 A,这意味着对类型 A 的引用。示例:

Stock x;
Stock& s = x; // now s is a reference to x

含义 2: 运算符地址。返回指向其参数的指针的一元运算符。示例:

Stock x;
Stock* s = &x; // now s a pointer to x

提醒:引用和指针是完全一样的东西,只是它们的语法不同,而且引用永远不能为null,也不能有对引用的引用。

不要删除这个帖子,我们喜欢 n00bs。我自己就是个 n00b。

关于C++ Primer Plus this 指针示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7870315/

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