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/