首页 > 解决方案 > C++ 空值和 this 指针

问题描述

我是 C++ 的新手,正在努力学习 C++。我在Java中有一个这样的代码块:

public List<String> getDiagnosticTroubleCode() {
    if (diagnosticTroubleCode == null) {
        diagnosticTroubleCode = new ArrayList<String>();
    }
    return this.diagnosticTroubleCode;
}

如何比较disgnosticTroubleCodenull值?并将其设置为新的List. 我已经覆盖了std::list它以使其像List在 Java 中一样使用。然后我想返回diagnosticTroubleCodeobject 中的字段this。我希望你们能帮助我解决这个问题。试图研究this指针和null.

这是我在 C++ 中的标题:

class RUNTIME_EXPORTS DiagnosticTroubleCode {
            protected:
                List diagnosticTroubleCode;
            public:
                List getDiagnosticTroubleCode();
            };

标签: c++this

解决方案


我记得在 Java 中一切都是指针。所以在JavadiagnosticTroubleCode == null中本质上是diagnosticTroubleCode与一个空指针进行比较。在 C++ 中,我们没有 null,我们有NULLor nullptr。在 C++ 中,对象不能真正为 null,因为它不是。对象在构造时会占用一块内存,因此它永远不能为空。因此,请尝试熟悉指针并将其用于您的优势。

关于this. 如果要返回成员变量,其实不需要写return this.variable,直接写返回变量即可return variable


推荐阅读