发信人: purchasecar (purchasecar), 信区: Programming
标 题: 问一个C++的问题,关于base class的设计的
发信站: BBS 未名空间站 (Tue Nov 18 00:28:22 2014, 美东)
假设有个base class叫Animal
derived class包括Cat,Dog等等
class Cat: public Animal {
...
};
现在希望在Animal里定义一个成员函数,比如叫processData
其作用是处理一些各种动物共通的数据,比如身高体重之类的
其输入是AnimalData这个class的object,当然身高体重什么的都是AnimalData这个
class的member variable
而在Cat这个class里,希望有一个overriden的processData函数,处理身高体重加上其
他一些cat特有的数据,比如胡须长度,这些数据都是CatData这个class的member
variable,当然,CatData是AnimalData的 derived class
现在问题是一般怎么设计这个base class Animal和derived class Cat?
假如把processData的输入参数设为AnimalData类型的reference,那么Cat的
processData就不能用CatData类型的reference,因为override要求必须参数类型一致
但如果把Cat的processData函数的输入也设为AnimalData类型的reference,那么就无法
处理Cat的特有的数据
希望大牛们不吝赐教指点一下,或者扔个链接我自己去网上看,谢谢您!
Tuesday, November 18, 2014
问一个C++的问题,关于base class的设计的
http://www.mitbbs.com/article_t/Programming/31383127.html
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment