Имена типов в области класса
Имена типов, определенные в области класса, считаются локальными для этого класса. Они не могут использоваться вне класса. В следующем примере демонстрируется эта концепция:
// type_names_in_class_scope.cpp
// C2146 expected
class Tree {
public:
typedef Tree * PTREE;
PTREE Left;
PTREE Right;
void *vData;
};
PTREE pTree; // not in class scope