У меня есть несколько вопросов о внутренней работе C++. Например, я знаю, что каждая функция-член класса имеет неявный скрытый параметр, который является указателем this (во многом так же, как это делает Python):
class Foo
{
Foo(const Foo& other);
};
// ... is actually...
class Foo
{
Foo(Foo* this, const Foo& other);
};
Разве я не прав, предполагая, что правильность функции не зависит напрямую от правильности этого (поскольку это просто еще один параметр)? Я имею в виду, конечно, если вы попытаетесь получить доступ к члену this-указателя, лучше, чтобы он был действительным, но в противном случае функция будет продолжаться, если this будет удален, верно?
Например, что, если я напортачу с указателем this и сделаю что-то вроде того, что вы видите ниже? Является ли это неопределенным поведением или оно определяется крайне обескураженным? (спрашиваю из чистого любопытства).
Foo:Foo(const Foo& other)
{
delete this;
this = &other;
}