小弟遇到問題如下:其中a是類中的常資料成員,在其中一個成員函式中有switch-case,把 a作為一個case,
為何會有出現:a不是常量運算式的錯誤;想了很久還是沒想明白,小弟是初學者。
希望大神幫小弟指點迷津,先謝過。
#include<iostream>
#include<string>
using namespace std;
class test
{
public:
test():a(0){};
void switch_test();
private:
const int a;
};
void test::switch_test()
{
int i=0 ;
switch (i)
{
case 1:
cout<<"case 1 is tested"<<endl;
break;
case a:
cout<<"it is ok for the test "<<a<<endl;
break;
}
return;
}
uj5u.com熱心網友回復:
case 后面不能用變數吧 !uj5u.com熱心網友回復:
case 后面貌似只能寫常量運算式。。。uj5u.com熱心網友回復:
const int a; 這個a是個變數,只是這個變數的值不能改變,可以理解為常量變數。常量可以這樣定義
12345;
#define CA 12;
enum a{a1 = 89, a2};
uj5u.com熱心網友回復:
case語法就是后面必須常量運算式,并且只能是整形常量uj5u.com熱心網友回復:
a 沒有初始化,初始化后就可以了。直接這樣寫,就可以了。
private:
static const int a = 1;
uj5u.com熱心網友回復:
不過這種用法不好,如果你的a真的=1,那么跟case 1就重復,會有問題。不建議你用這種方式寫代碼。混亂轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/104362.html
標籤:基礎類
