首页上一页 1 下一页尾页 1 条记录 1/1页
VC从入门到精通第5章
发表在C语言图书答疑
2009-11-19
是否精华
是
否
版块置顶:
是
否
你好,我在学习VC从入门到精通中的第5章内容,第139页讲到虚函数的继承性时,我想到这样一个问题:
#define MAXLEN 180
class CEmployee
{
public:
int m_ID;
char m_Name[MAXLEN];
char m_Depart[MAXLEN];
CEmployee()
{
memset(m_Name,0,MAXLEN);
memset(m_Depart,0,MAXLEN);
printf("员工类构造函数被调用\n");
}
virtual void OutputName(const char* pchData)
{
if(pchData!=NULL)
{
strcpy(m_Name,pchData);
printf("设置并输出员工姓名:%s\n",pchData);
}
}
};
class COperator:public CEmployee
{
public:
char m_Password[MAXLEN];
void OutputName()
{
printf("操作员姓名:%s\n",m_Name);
}
};
这样的话,在子类COperator中的OutputName()方法还是默认的虚方法吗?这样能虚方法是只对同名函数进行默认继承吗?能说一下虚方法这种机制的内部原理吗?谢谢!!!
#define MAXLEN 180
class CEmployee
{
public:
int m_ID;
char m_Name[MAXLEN];
char m_Depart[MAXLEN];
CEmployee()
{
memset(m_Name,0,MAXLEN);
memset(m_Depart,0,MAXLEN);
printf("员工类构造函数被调用\n");
}
virtual void OutputName(const char* pchData)
{
if(pchData!=NULL)
{
strcpy(m_Name,pchData);
printf("设置并输出员工姓名:%s\n",pchData);
}
}
};
class COperator:public CEmployee
{
public:
char m_Password[MAXLEN];
void OutputName()
{
printf("操作员姓名:%s\n",m_Name);
}
};
这样的话,在子类COperator中的OutputName()方法还是默认的虚方法吗?这样能虚方法是只对同名函数进行默认继承吗?能说一下虚方法这种机制的内部原理吗?谢谢!!!