如何从基类指向派生类?

时间:2014-08-16 19:53:21

标签: c++ multithreading

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

这是我的代码。我有一个基本的Thread类和一个printerThread派生类。我叫这个功能。例如:

PrinterThread printer;
printer.suspend();

我有一个线程私有值,它是null,并且是一个非null的printerThread myThread私有值。我想将null值初始化为printerThread值。

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

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

1 个答案:

答案 0 :(得分:0)

您可以通过向下扩展基类来实现此目的

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

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