我已經看到了用於構建狀態機的boost示例中的代碼部分。我困惑的是兩個成員函數ElapsedTime()?這是否允許兩個函數具有相同的簽名,如函數名稱和參數類型?在同一個類/結構中具有相同簽名的相同函數?超載?
我已經搜索了很多,但沒有任何運氣找到相關的信息。任何意見,將不勝感激。
struct Active : sc::simple_state< Active, StopWatch, Stopped >
{
public:
typedef sc::transition< EvReset, Active > reactions;
Active() : elapsedTime_(0.0) {}
double ElapsedTime() const { return elapsedTime_; }
double & ElapsedTime() { return elapsedTime_; }
private:
double elapsedTime_;
};
它們沒有相同的參數類型,因爲它們中的一個是'const'(這意味着隱式傳遞'this'指針是'const')。第二,它不是。 –
他們沒有相同的簽名,一個是常量,另一個不是 – PlasmaHH
@BenjaminBannier小修正:_隱式傳遞'this'指針是**到**'const'_。這當然是你的意思。 – sehe