2015-12-06 109 views
-3

我想在不添加任何其他变量或对象的情况下打印(请参见下文)......我该怎么做?非常感谢...... B::打印:DRUCK A:打印C++如何调用B和A方法?

#include <iostream> 
using namespace std; 
class A { 
public: 
    void print() { cout << "A: : p r i n t " << endl; } 
    void druck() { cout << "A: : druck " << endl; } 
}; 
class B : public A { 
public: 
    void print() { cout << "B: : p r i n t " << endl; } 
    void druck() { cout << "B: : druck " << endl; } 
}; 
int main() { 
    A * a = new B(); 

    getchar(); 
    return 0; 
} 
+0

我的解决办法是让打印梅索德B静态,然后在没有对象的主要调用它,但我想这样做,而无需更改代码... :( –

+0

你试过' - >打印()'?发生了什么? –

+0

它只打印方法的答案:) –

回答

0

只需通过static_castB S,是这样的:

a->print(); 
static_cast<B*>(a)->print(); 
+0

非常感谢你:-D就是我需要的 –

相关问题