C++中如何用一种结构存储基类的多种派生类型,并可以方便访问
答案:2 悬赏:40 手机版
解决时间 2021-02-22 10:31
- 提问者网友:谁的错
- 2021-02-22 07:20
c++中,A是基类,B,C,D是A的PUBLIC派生类,我想把B,C,D存在一个vector中,我用vector vec来存储基类的指针实现的,当从vec中读取指针值的时候必须得判断是B,C,D哪种类型,类型转化后才能访问B,C,D。请问高手有没有一个更好的方法来存储基类的不同派生类,并且可以方便的访问派生类。请高手指教。
最佳答案
- 五星知识达人网友:等灯
- 2021-02-22 08:31
你这样用派生类只是搞得更复杂了,一点也没有起到应有的作用。
既然B,C,D都是派生自A的话,那么你访问它们时就应该使它们尽量具有相同的接口,并且将这个接口的类A中声明为虚函数,这样你访问接口程序会自动根据对象的类型来确定访问哪个函数而无视指针的类型。假如你要单独访问B,C,D中的成员变量,并且这些变量名字之类都不一样,建议你趁早别弄什么派生了,因为它们之间一点共同点也没有你让它们派生什么呢?
既然B,C,D都是派生自A的话,那么你访问它们时就应该使它们尽量具有相同的接口,并且将这个接口的类A中声明为虚函数,这样你访问接口程序会自动根据对象的类型来确定访问哪个函数而无视指针的类型。假如你要单独访问B,C,D中的成员变量,并且这些变量名字之类都不一样,建议你趁早别弄什么派生了,因为它们之间一点共同点也没有你让它们派生什么呢?
全部回答
- 1楼网友:你哪知我潦倒为你
- 2021-02-22 09:03
我不会~~~但还是要微笑~~~:)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯