一個點我上課像下面裏面的#define
#include <iostream>
#define Gb MemorySizeUnit.Gb
#define Mb MemorySizeUnit.Mb
#define Kb MemorySizeUnit.Kb
using namespace std;
enum MemorySizeUnit {Gb, Mb, Kb};
class Test
{
private:
MemorySizeUnit memSizeUnit;
int memorySize;
public:
void setMemory(const int memSize, MemorySizeUnit unit);
}
,我希望能夠像做
Test test;
test.setMemory(20, Gb);// as opposed to test.setMemory(20, MemorySizeUnit.Gb)
編譯器不一樣,在#定義,我有一個「 「。
呃,你不需要'#define',枚舉成員已經在全局名稱空間中了。所有你需要的是:'test.setMemory(20,Gb);' – 2012-08-05 17:07:46
Isnt MemorySizeUnit.Gb在全局命名空間中還是Gb在全局命名空間中? – Jimm 2012-08-05 17:08:58
@Jimm'Gb'位於全局名稱空間中。 'MemorySizeUnit.Gb'不存在。 – sepp2k 2012-08-05 17:10:31