gpt4 book ai didi

C++ 内部 : Messing with the this-pointer

转载 作者:行者123 更新时间:2023-11-28 01:06:43 24 4
gpt4 key购买 nike

我对 C++ 的内部工作原理有一些疑问。例如,我知道一个类的每个成员函数都有一个隐含的隐藏参数,即 this 指针(与 Python 的做法非常相似):

class Foo 
{
Foo(const Foo& other);
};

// ... is actually...

class Foo
{
Foo(Foo* this, const Foo& other);
};

然后我假设函数的有效性不直接取决于 this 的有效性(因为它只是另一个参数)的有效性是错误的吗?我的意思是,当然,如果您尝试访问 this 指针的成员,它最好是有效的,但如果 this 被删除,该函数将继续,对吗?

例如,如果我弄乱了 this 指针并做了如下所示的事情怎么办?这是未定义的行为,还是高度气馁的定义? (我纯粹出于好奇而问。)

Foo:Foo(const Foo& other)
{
delete this;
this = &other;
}

最佳答案

您不能分配给 this - 它的类型是 Foo * const。您可以在某些情况下删除它;,但这很少是个好主意。

关于C++ 内部 : Messing with the this-pointer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5714766/

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