gpt4 book ai didi

c++ - 在成员函数中,this == NULL 可以吗?

转载 作者:行者123 更新时间:2023-11-30 02:41:55 25 4
gpt4 key购买 nike

<分区>

假设我有以下类(class)

struct FooList {
int data;
FooList *next;

// basic constructor
FooList(int d, FooList *n): data(d), next(n) {}
// basic destructor
~FooList() { if (next) delete next; }

FooList *functional_append(FooList *) const;
};

然后在我的实现中,我定义

FooList *FooList::functional_append(FooList *other) const {
if (this == NULL)
return other;
else
return new FooList(data, next->functional_append(other));
}

第二行的条件有意义吗? this 会是 NULL 吗?我知道如果 functional_append 被声明为 virtual 那么一旦 this == NULL 就会抛出一个段错误,但是作为一个简单的成员函数它会仍然像我期望的那样工作吗?


注意:我正在寻找上述将起作用或不起作用的原因(就像等效的 C 代码),而不仅仅是“不,它不可能发生”或“是的,如果强制它这样...... ”。

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