一个点我上课像下面里面的#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