Java 到 Cpp 代码转换,有关 static 和 new 关键字的问题

标签 java c++ object static new-operator

public class ProblemDef {
        private static WFG1 w12;
        }
 public ProblemDef()
        {
            w12 = new WFG1(1,23,2);
}

如果我用 C++ 编写如下

class ProblemDef{
         private:
                static WFG1* w12;
         public:
                ProblemDef(){
                w12=new WFG1(1,23,2);
                }
};

它显示错误,我该如何继续。 C++ 中基于“new”关键字的对象声明相当于什么? C++ 中对象的静态声明是如何完成的?

最佳答案

在 C++ 中,您应该尽可能少地使用 new,因为您还需要删除new编辑的内容,这很棘手得到正确的结果。这里根本不需要 new:

class ProblemDef{
    private:
        static WFG1 w12;      // no pointer

    public:
        ProblemDef() {}
};

WFG1 ProblemDef::w12(1,23,2); // initialization of the static variable

这使得 ProblemDef 的所有实例共享相同的 WFG1

如果您确实想要为 ProblemDef 的每个实例都有一个新的 WFG1,请不要将其设为静态 .

关于Java 到 Cpp 代码转换,有关 static 和 new 关键字的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60710328/

相关文章:

java - OnClickListener onClick=true 和选择器

c++ - stringstream 输出的原因是什么?

c# - 代码找不到类

c++ - 如何在 Windows 上使用 cproto

java - 具有 ArrayList 成员变量的不可变对象(immutable对象) - 为什么可以更改此变量?

javascript - 推送对象在 JavaScript 中无法正常工作

java - 时差忽略时区差异

检测到 JavaFX 未完成的资源锁

java - 带有字符串的 switch 语句中需要常量表达式错误

c++ - 显式特化,C++