如何从基类指向派生类

How to point to a derived class from a base class?

本文关键字:派生 基类      更新时间:2023-10-16

http://s30.postimg.org/oeaimxe40/mendez.jpg

这是我的代码。我有一个基线程类和一个打印机线程派生类。我调用该函数。例:

PrinterThread printer;
printer.suspend();

我有一个空的线程私有值和一个非空的打印机线程myThread私有值。我想将空值初始化为打印机线程值。

图片中的所有内容都正常工作,但红色下划线除外。

请记住,我在调试开始后添加了整行,否则会出现编译错误。如何访问该 printThread 变量?

您可以通过向下转换基类来执行此操作

PrinterThread *printerThread = dynamic_cast<PrinterThread*>(this);

仅当基类是 PrinterThread 对象时,printerThread才会为非 null。引入虚拟方法并在 PrinterThread 类中重写它可能是一个更好的设计。