📄 subject_24139.htm
字号:
<p>
序号:24139 发表者:小小阿胖 发表日期:2002-12-09 20:43:48
<br>主题:看《深入浅出MFC》的小问题
<br>内容:前提:CEmployee派生CWage,CWage派生CSales<BR><BR>候曰:<BR>CEmployee* pEmployee;<BR>CWage aWager("曾美源");<BR>CSales aSales("侯俊杰");<BR>CManager aManager("陈美静");<BR>pEmpolyee = &aWager; // 合理,因为时薪职员必是职员<BR>pEmpolyee = &aSales; // 合理,因销售职员必是职员<BR>pEmpolyee = &aManager; // 合理,因经理必是职员<BR>也就是说,你可以把一个「职员指标」指向任何一种职员,这带来的好处是程式设计的巨大弹性,<BR><BR>候又曰:<BR>如果你以一个「基础类别之指标」指向一个「衍生类别之物件」,那么经由此指标,你就只能够呼叫基础类别(而不是衍生类别所)所定义的函式。因此:<BR>CSales aSales("侯俊杰");<BR>CSales* pSales;<BR>CWage* pWager;<BR>pSales = &aSales;<BR>pWager = &aSales; // 以「基础类别之指标」指向「衍生类别之物件」<BR>pWager->setSales(800.0); //错误(编译器会检测出来),<BR>// 因为CWage并没有定义setSales函式。<BR>pSales->setSales(800.0); // 正确,呼叫CSales::setSales 函式。<BR><BR>Q:虽然CWage没有定义setSales函数,但是CSales类里已定义过了,不是说“你可以把一个「职员指标」指向任何一种职员”<BR> 谢!<BR>2002-12-9 20:45:49
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -