理论问题
在基类和子类中,都把类型相关的成员函数定义成虚函数。
什么是类型相关的函数,怎样边被类型相关的函数////?????
************************************************************
c++ primer中的原文
为了把一个类设计成基类要做的第二个设计考虑是找出类型相关的成员函数并把这
些成员函数标记为virtual 虚拟的
对于类型相关的成员函数它的算法由特定的基类或派生类的行为或实现来决定例如:
对每种数组类型下标操作符的实现是不同的所以我们将它声明为Virtual。
[解决办法]
第二个设计考虑是找出“与具体”类型相关的成员函数
漏了“”里的东西。
[解决办法]
类型相关有英文原文吗?
我估计意思就是对象类型特定的方法,比如一个圆的draw的方法,一个方的draw的方法。这些需要在子类中被重载。
[解决办法]
不用理它这里的描述,实际你只要把你想virtual化的函数virtual就可以了,因为往往你想virtual化的函数都是类型相关的(这里的类型指的是sub-class),所以它才这么说。
[解决办法]
wori,我竟然看成了伦理问题。
[解决办法]
类型相关的意思就是做的是同一类事情,但是实现方法不同,比如算面积,矩形和圆的计算方法是不一样的,但是可以在基类和各自的类里定义virtual getArea(){...},这样不同类型的对象就可以通过同一个接口调用自己的实现,特别在对象作为参数传递的时候,假如基类是shape,函数定义
int function(shape x)
{
return x.getArea();
}
在调用时你可以传递不同的shape的子类,得到各自不同的Area。
水平肤浅,说不太清楚- -LZ还是先搞懂virtual函数的基本特征吧。