第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

CString作為函數(shù)的參數(shù)傳遞,如何與函數(shù)中的枚舉變量的元素匹配呢?

CString作為函數(shù)的參數(shù)傳遞,如何與函數(shù)中的枚舉變量的元素匹配呢?

慕碼人2483693 2019-02-05 10:06:37
double CBeamWSlab::itest_enum(CString sss){ double b;enum STR {C15,C20};double fc[2]={11,22};STR str=sss;b=fc[str];return b;}利用ComboBox選擇是C15或C20,然后該字符串作為函數(shù)的參數(shù),利用枚舉變量,為C15,返回11.000000,是C20返回22.000000。編譯顯示“error C2440: “初始化”: 無法從“CString”轉(zhuǎn)換為“CBeamWSlab::itest_enum::STR”1> 沒有可用于執(zhí)行該轉(zhuǎn)換的用戶定義的轉(zhuǎn)換運(yùn)算符,或者無法調(diào)用該運(yùn)算符”問題出在這一句“ STR str=sss;”,作為字符串的C15或C20如何和枚舉元素相匹配呢?
查看完整描述

3 回答

?
富國滬深

TA貢獻(xiàn)1790條經(jīng)驗(yàn) 獲得超9個(gè)贊

sss是CString類型,不是枚舉enum類型;而且enum的實(shí)際是int類型;需要把CString進(jìn)行判斷,然后再賦值;
if(sss == "C15")
{
STR str = C15;

}
else if(sss == "C20")
{
STR str = C20;

}



查看完整回答
反對(duì) 回復(fù) 2019-03-25
?
慕后森

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊

你需要建立一個(gè)表記錄各個(gè)枚舉數(shù)據(jù)對(duì)應(yīng)的字符串,并與輸入字符串逐一比較,第幾個(gè)字符串就查表得到相應(yīng)的枚舉數(shù)據(jù),所以有時(shí)還不如就用整型數(shù)據(jù)來替代枚舉數(shù)據(jù)使用。

查看完整回答
反對(duì) 回復(fù) 2019-03-25
?
陪伴而非守候

TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超8個(gè)贊

如果選項(xiàng)多,可以用switch{case:...}

另外,enum在使用中就是存在這樣的問題;
當(dāng)然你也可以這樣定義enum:
enum STR{C15=15,C20=20};
然后再判斷輸入的sss的時(shí)候進(jìn)行轉(zhuǎn)換成int,然后進(jìn)行比較;
char *ch=sss.GetBuffer(sss.GetLength()); 
int a = atoi(ch+1); // 把字符串轉(zhuǎn)換成int類型,字符串的第一位“C”去掉;
STR str = a; // 把字符串轉(zhuǎn)換出來的int值賦值給enum的對(duì)象str


查看完整回答
反對(duì) 回復(fù) 2019-03-25
  • 3 回答
  • 0 關(guān)注
  • 921 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)