定义变量时调用类函数

时间:2019-03-24 15:50:39

标签: java c++

在Java中,您可以例如编写:

public static final Material WOOD = (new Material(MapColor.WOOD)).setBurning();

如何用C ++编写?

static Material * WOOD = new Material(MapColor::WOOD)....

我想避免任何Init调用或某种形式的调用。 最好是像在Java中那样做。

2 个答案:

答案 0 :(得分:1)

首先,在C ++中,您不必使用new创建对象。而且您应该避免使用指针。

确切地在这种情况下该做什么很大程度上取决于setBurning返回的内容,但是如果它按值返回一个Material对象(我建议),那么您可以执行类似的操作:

static Material WOOD = Material(MapColor::WOOD).setBurning();

表达式Material(MapColor::WOOD)创建一个临时Material对象,然后使用该对象调用其setBurning函数,该函数返回一个新的Material对象,您将其保存在其中变量WOOD

答案 1 :(得分:0)

所以看来您正在寻找这样的代码

// header file
class Something
{
    static Material* WOOD;
};

// source file
Material* Something::WOOD = new Material(MapColor::WOOD);

这是完全正常的C ++代码,但您在Java中找不到。