gpt4 book ai didi

C++ - 分配给 'this' 不合时宜

转载 作者:太空宇宙 更新时间:2023-11-03 10:38:04 24 4
gpt4 key购买 nike

我得到了这段代码,并要求我说明它有什么问题,以及如何修复它。代码给我一个错误,类似于 c++ assignment to this anachronism,我不确定这意味着什么。

我是 C++ 的新手,我不知道该做什么。请帮忙。这是有问题的代码:

class SELF
{
private:
SELF * me;
public:
SELF()
{
this = me;
}
};

如何赋值

最佳答案

这是 30 多年前从语言中删除的 C++ 结构。它来自 80 年代中期 cfront 的早期阶段,直到 90 年代初期,您仍然可以找到以这种方式做事的编译器。它已被替换为 operator new。我在以这种方式工作的编译器上编写了我的第一个 C++ 代码(Mandlebrot 集合生成器的 complex 类)。

您最初没有在此处提供足够的上下文来了解如何解决这种情况下的问题。没有可以规定地应用于所有情况的微不足道的转换。

构造最初是为了让您可以在构造函数中为对象分配内存。如果您在构造函数中分配给 this,编译器不会在您创建它时为您的对象分配内存,它会假定您在构造函数中自己完成了它。

在评论中,您说这是直接从大学作业中复制的,我敢打赌即使您的教授也不知道这个旧结构,解决方案可能只是说 me = this; 而不是 this = me;

但是您的编译器将其称为“不合时宜”的原因是它确实如此。

对于任何对历史感兴趣的人,可以在 the manual for cfront version 'E' 的第 42 页上看到原始结构。 .

关于C++ - 分配给 'this' 不合时宜,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56123848/

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