类中enum常量在new一个实例时要如何访问?
==============test.h=========================
class CTest
{
public:
CTest();
~CTest();
enum AA {
AA_Data0 = 0,
AA_Data1 = 1,
AA_Data2,
AA_Data3
};
int GetAA(char c);
};
=======================test.cpp=================
#include "test.h"
int CTest::GetAA(char c)
{
char const tab[] = {'0','1','2','3'};
for (int i=0; i < 4; i++) {
if (tab[i] == c)
return i;
}
return -1;
}
=======================main.cpp=================
#include <stdio.h>
#include "test.h"
int main(int argc, char *argv[])
{
CTest *pTest = new CTest;
switch (pTest->GetAA('0')) {
case pTest->AA_Data0:
printf("char 0\n");
break;
case pTest->AA_Data1:
printf("char 1\n");
break;
case pTest->AA_Data2:
printf("char 2\n");
break;
case pTest->AA_Data3:
printf("char 3\n");
break;
default:
printf("unknow char\n");
break;
}
delete pTest;
return 0;
}
=====================================================
g++ -g -o test.o -c test.cpp
g++ -g -o main.o -c main.cpp
main.cpp: In function `int main(int, char**)':
main.cpp:9: error: `pTest' cannot appear in a constant-expression
main.cpp:9: error: '->' cannot appear in a constant-expression
main.cpp:12: error: `pTest' cannot appear in a constant-expression
main.cpp:12: error: '->' cannot appear in a constant-expression
main.cpp:15: error: `pTest' cannot appear in a constant-expression
main.cpp:15: error: '->' cannot appear in a constant-expression
main.cpp:18: error: `pTest' cannot appear in a constant-expression
main.cpp:18: error: '->' cannot appear in a constant-expression