慕田峪7331174
enum 和 struct、class差不多, 是一个类型的修饰词, 而不是特定的类, typedef之后跟的必须是一个特定的类型. 应该这样:#include <iostream>using namespace std;int main(){enum MyColor{red, blue, green};typedef MyColor C;C a = blue;cout << a;}如果你要把enum换成mei就只能用#define了:#define mei enummei MyColor{red, blue, ...};还有楼上的, 你这句:"其实typedef在C++里边没多少用处。 ", 有用没有你看看下面这段代码就知道了, 不过估计你也看不懂:#include <iostream>#include <typeinfo>using namespace std;template <int n, class T>struct Test1{typedef typename const Test1<n-1, T>::type* type;};template <class T>struct Test1<0, T>{typedef T* type;};template <int n, class T>struct Test2{typedefpair<pair<typename Test2<n-1, T>::type, T >, pair<T, typename Test2<n-1, T>::type> > type;};template <class T>struct Test2<0, T>{typedef T* type;};int main(){cout << typeid(Test1<5, int>::type).name() << '\n';Test2<5, double>::type magic;cout << typeid(magic).name() << endl; // 惊! 但它的确是合法类型}