百科问答小站 logo
百科问答小站 font logo



C++可否将父类的对象cast子类,并调用子类的private函数? 第1页

  

user avatar   pansz 网友的相关建议: 
      

无论你掌握的是基类还是子类指针都不能调用private。只能调用public。

要想实现你所说的,可以定义一个public的虚方法。基类实现为空,子类实现为调用那个private方法。如此一来就根本不需要类型强转了。因为当真实对象实际是子类的时候,哪怕用基类指针保存这个对象,也能够调用到正确的虚方法。

题主对面向对象的多态性基础知识还需要学习。




  

相关话题

  为什么C++有一些奇特的语法? 
  为什么指针不能相加? 
  c++如此繁琐,为什么大学不直接开展python课程? 
  C++构造函数为什么要依赖初始化列表? 
  为什么很多新型编程语言都抛弃了 C 语言风格的 for 语句? 
  如何理解《Effective C++》第31条将文件间的编译依赖关系降低的方法? 
  游戏程序员必须要修 C# 吗?我徘徊在先开始 C++ 还是 C# ? 
  为什么 C++ 的开源库看起来那么头大? 
  为什么C++里,封装类对象消亡时候,先执行封装类的析构函数,再执行成员对象的析构函数? 
  如何理解互斥锁、条件锁、读写锁以及自旋锁? 

前一个讨论
为什么很多游戏策划会做一些匪夷所思的操作,让游戏逐渐变凉?
下一个讨论
这个代码int函数无返回值且开-O2,for循环会无限循环,是什么原因?





© 2025-06-04 - tinynew.org. All Rights Reserved.
© 2025-06-04 - tinynew.org. 保留所有权利