我得到了此代码,并要求说明它的问题以及如何修复它。代码给我一个错误,例如c++ assignment to this anachronism
,我不确定这是什么意思。
我是C 的新手,我不知道在这里该怎么办。请帮忙。这是所讨论的代码:
class SELF
{
private:
SELF * me;
public:
SELF()
{
this = me;
}
};
如何分配值
这是一个C 构造,在30年前从该语言中删除。从80年代中期cfront
的早期开始,您仍然可以找到这样的编译器,直到90年代初。它被operator new
替换。我在编译器上写了一些我的第一个C 代码(用于Mandlebrot Set Generator的complex
类(。
您最初在这里没有提供足够的上下文来知道如何在这种情况下解决问题。没有可以规定应用于所有情况的微不足道的转换。
最初创建了构造,因此您可以为构造函数中的对象分配内存。如果您分配给构造函数中的this
,则编译器在创建对象时不会为您的对象分配内存,它假定您自己在构造函数中自己做。
在评论中,您说这是直接从大学作业中复制的,我敢打赌,甚至您的教授都不知道这种旧结构,解决方案可能只是简单地说me = this;
而不是this = me;
。
但是,您的编译器称其为"过时"的原因是。
对于任何对历史感兴趣的人,可以在Cfront版本的第42页" E"的第42页上看到。