三公子Tjq
2021-07-29 12:20
采纳率: 100%
浏览 25

用派生类指针指向基类对象,用该指针调用派生类成员方法可以,但是调用基类成员方法和基类成员变量都段错误啊?

用派生类指针指向基类对象,用该指针调用派生类成员方法可以,但是调用基类成员方法和基类成员变量都段错误啊?
用该指针调用虚函数打印的是基类的虚函数啊。
安装c++对象模型的理解,该指针应该可以调用基类的成员方法和变量,而不会出现段错误,调用派生类的成员方法和变量才出现段错误,怎么结果反过来了?

  • 点赞
  • 收藏

3条回答 默认 最新

  • 三公子Tjq 2021-07-29 18:25
    已采纳

    已经解决了,是用dynamic_cast强转的时候没有判空,所以才出现这种奇怪现象。另一张想要强转的方法是直接用c语言的小括号强转就可以正常调用基类和派生类成员啊。

    点赞 打赏 评论
  • 要看你基类的成员变量和方法,如果是私有的就不能访问了。

    点赞 打赏 评论
  • CSDN专家-link 2021-07-29 12:46

    不妨把代码贴出来看看。
    确实,一般都是用基类指针指向派生类对象,然后利用多态进行方法调用。用派生类指针指向基类对象,本身就没道理啊

    点赞 打赏 评论