91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

控件狀態機設計C++應用

發布時間:2024-09-02 10:27:43 來源:億速云 閱讀:86 作者:小樊 欄目:編程語言

在C++中設計一個控件狀態機,我們可以使用類和繼承來實現

#include<iostream>
#include<string>

// 基類 ControlState
class ControlState {
public:
    virtual void handle(Control& control) = 0;
};

// 具體狀態類:ActiveState
class ActiveState : public ControlState {
public:
    void handle(Control& control) override {
        std::cout << "Control is already active."<< std::endl;
    }
};

// 具體狀態類:InactiveState
class InactiveState : public ControlState {
public:
    void handle(Control& control) override {
        std::cout << "Activating control..."<< std::endl;
        control.set_state(new ActiveState());
    }
};

// Control 類
class Control {
public:
    Control() : state_(new InactiveState()) {}

    void set_state(ControlState* state) {
        delete state_;
        state_ = state;
    }

    void handle() {
        state_->handle(*this);
    }

private:
    ControlState* state_;
};

int main() {
    Control control;
    control.handle(); // 輸出:Activating control...
    control.handle(); // 輸出:Control is already active.

    return 0;
}

在這個例子中,我們定義了一個基類ControlState,它有一個純虛函數handle()。然后我們創建了兩個具體狀態類ActiveStateInactiveState,它們分別繼承自ControlState并實現handle()方法。

Control類包含一個ControlState指針,用于存儲當前狀態。我們還為Control類提供了一個set_state()方法,用于設置新的狀態。Control類的handle()方法調用當前狀態的handle()方法。

main()函數中,我們創建了一個Control對象,并連續調用了兩次handle()方法。第一次調用時,控件處于非活動狀態,因此會激活它并輸出“Activating control…”。第二次調用時,控件已經處于活動狀態,因此不會有任何操作,只會輸出“Control is already active.”。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

梧州市| 东丽区| 潼关县| 新乡市| 措勤县| 酉阳| 昔阳县| 万载县| 海口市| 蕲春县| 新乡市| 玛沁县| 贵阳市| 通化县| 城口县| 滁州市| 五华县| 高台县| 阿拉善盟| 长寿区| 石嘴山市| 绥芬河市| 桐梓县| 涞源县| 乌拉特前旗| 霸州市| 合作市| 讷河市| 杭锦后旗| 建平县| 凤城市| 抚松县| 迁安市| 攀枝花市| 河池市| 衡阳市| 宁安市| 孝感市| 吴江市| 松江区| 丰县|