class DataType{
...
private:
enum type {type_int,type_char,type_float};
union {
int num_int;
char num_char;
float num_float;
};
};
在類中定義了私有資料成員type列舉型別但是編譯時會報錯
[error] enum DataType::type' is not a non-static data member of 'DataType'
按書中把列舉名放在后面,改為enum {type_int,type_char,type_float} type就可以通過
請問列舉名在前后有什么區別嗎
uj5u.com熱心網友回復:
前面代表的是型別名uj5u.com熱心網友回復:
沒有問題啊,VS2015 C++環境class DataType
{
private:
enum type { type_in, type_char, type_float };
union {
int num_int;
char num_char;
float num_float;
};
};
int main()
{
return 0;
}
uj5u.com熱心網友回復:
估計是他拿型別當實體用。uj5u.com熱心網友回復:
class A{enum type{....};
}
代表他是一個型別,要使用必須
A::type o=....
==========
class A{
enum{ ....}type;
代表的是一個匿名的列舉。type是一個欄位
可以通過
A a;
a.type 訪問。。。
uj5u.com熱心網友回復:
明白了謝謝!
uj5u.com熱心網友回復:
對,一開始以為定義在后邊也是列舉名,就糊涂了。現在明白了,謝謝!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/111590.html
標籤:C語言
上一篇:引發未經處理的例外:讀取訪問權限沖突。0xCDCDCD
下一篇:類
