当方法有三种返回可能性时该怎么办?

时间:2017-07-10 17:36:48

标签: c++ return-type

我正在用C ++开展一个项目,发现自己需要一种方法来确定物质的相位(固体,液体或气体)。这里只有三种可能性;我发现自己处于类似的情况中,虽然看起来很明显只使用整数(0,1,2或1,2,3),但我发现在实践中这与布尔人相比还不清楚。我想到的另一种可能性是制作三种方法,isLiquid,isGas和isSolid,每种方法返回一个布尔值,但这似乎效率低下。我只是想知道是否有人知道这两种可能性中哪一种更好,或者是否有其他想法我不知道。

1 个答案:

答案 0 :(得分:3)

使用enum可能会简化您的代码并使其更具可读性。我将为您提供此示例。

class Thing {
    enum MatterState {
        SOLID,
        LIQUID,
        GAS
    };

    MatterState state;

    // ... other variables

  public:

    // ... constructors, etc

    MatterState get_state() {
        return this->state;
    }
};

您指定了方法,因此我为您提供了class