静态数据成员的困惑
enum EIdentity{eStudent, eTeacher};
class Person
{
public:
Person(EIdentity identity);
EIdentity getIdentity() const;
private:
EIdentity _identity;
}
class Student : public Person
{
public:
Student()
: Person(eStudent)
{
}
};
class Teacher: public Person
{
public:
Teacher()
: Person(eTeacher)
{
}
};
enum EIdentity{eStudent, eTeacher};
class Person
{
public:
//Person里面做一些其他的事情吧,比如姓名性别等
//Person(EIdentity identity);
//EIdentity getIdentity() const;
private:
//枚举不要放在基类里面
//EIdentity _identity;
}
class Student : public Person
{
public:
static const EIdentity _identity = eStudent;
//Student()
//: Person()
//{
//}
//在每个类里
EIdentity getIdentity() const
{
return _identity;
}
};
//类外定义static变量
const EIdentity Student::_identity;
class Teacher: public Person
{
public:
static const EIdentity _idrntity = eTeacher;
//Teacher()
//: Person(eTeacher)
//{
//}
EIdentity getIdentity() const
{
return _idrntity;
}
};
const EIdentity Teacher::_idrntity;