我想一個虛擬類是這樣的:虛擬數據類型/枚舉
class Configuration
{
public:
enum EPromptId;
virtual CString getPrompt(EPromptId promptId) = 0;
private:
};
讓每個派生的配置都可以有它自己的一套EPromptIds
class Configuration1 : public Configuration
{
public:
enum EPromptId{
epid_HappyBirthday
};
CString getPrompt(EPromptId promptId){
return "";
}
private:
};
class Configuration2 : public Configuration
{
public:
enum EPromptId{
epid_JummpingJehoshaphat
};
CString getPrompt(EPromptId promptId){
return "";
}
private:
};
因爲每個類都需要implment這種失敗的一個具有Configuration :: EPromptId參數的虛擬函數(不是此代碼中的Configuration1 :: EPromptId或Configuration2 :: EPromptId)。
是否有可能讓基類識別參數類型,但在每個派生類中定義不同的值(可能不使用枚舉,但保留強類型,即不使用int)。
編輯:我想兩個不同的'應用程序'的兩個不同的配置。提示可以保存在數據庫表中,但每個「應用程序」都有它自己的表格。一個指向基本配置類的指針被包含在一個與某些硬件接口的類中(即進行實際顯示)。硬件是一種可用於請求和接收用戶輸入的io設備。當創建硬件類時,它將傳遞一個指向正確配置類的指針,並在請求時顯示正確的提示。
這是否必須是一個'enum'? 'const int'也可以嗎? – sbi 2009-09-01 17:55:18
需要成爲一個枚舉。 – Patrick 2009-09-02 11:32:02