class Command
{
public:
int id;
int type;
}
class OnCommand : Command
{
public:
int OnCount;
}
先申明了一个父类的变量 Command cmd;
经过一些处理后 cmd被赋值了一个OnCommand对象
请问如何将cmd转换为OnCommand然后获取里边OnCount属性的值?
不允许这样获取么?
class Command
{
public:
int id;
int type;
}
class OnCommand : Command
{
public:
int OnCount;
}
先申明了一个父类的变量 Command cmd;
经过一些处理后 cmd被赋值了一个OnCommand对象
请问如何将cmd转换为OnCommand然后获取里边OnCount属性的值?
不允许这样获取么?
你所用的是继承,而不是内嵌对象, _先申明了一个父类的变量 Command cmd;经过一些处理后 cmd被赋值了一个OnCommand对象_你的这句话,实际上就是赋值兼容规则的体现。用子类对象去初始化父类对象,http://www.cnblogs.com/gavindlutsw/archive/2011/08/11/2135599.html,这个链接好好看看。_**请问如何将cmd转换为OnCommand然后获取里边OnCount属性的值?**_你的这句话说的是将基类对象强转为子类对象再去访问子类的成员变量。但事实上这样是不可能的!!!即使你转换过来,也不能够去用派生类的数据成员,当然这儿跟多态没有任何的关系。多态指的是对方法的覆盖(成员函数).