gpt4 book ai didi

C++ 中的 java "this"

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:36:22 24 4
gpt4 key购买 nike

我在 java 中的一个函数中,我创建了一个将“this”作为参数传递的新对象:

class AClass { 
AClass(TestClass testClass) { }
}

class TestClass {
AClass doSomething()
{
return new AClass(this);
}
}

如何在 C++ 中做到这一点?

应该是:

class AClass {
AClass(TestClass* testClass) { }
};

class TestClass {
AClass* doSomething()
{
return new AClass(*this);
}
};

我应该传递 *this 还是 &this?

最佳答案

这取决于。您可能正在寻找这个:

class AClass { 
AClass(TestClass& testClass) { }
};

class TestClass {
AClass doSomething()
{
return AClass(*this);
}
};

在 C++ 中使用它:

TestClass testClass;
AClass aClass = testClass.doSomething();

但是你真正想做什么?与 Java 不同,C++ 明确区分了值和引用。你真的应该read a good beginner's C++ book ,正如 James McNellis 所建议的那样。

C++ 对值/引用/指针之间的区分是该语言的基础,不遵守这一点将导致灾难。再一次,请拿起一本 C++ 书。

关于C++ 中的 java "this",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3614812/

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