我有2个类:一个基本和一个派生。也有结构。虚拟功能故障
struct D;
class A {
public:
virtual D Multiply(D one, D two) {
//realization
return result;
}
virtual D Pow(D one, D two) {
result = this->Multiply(one,two); //#1
return result;
}
};
class B: public virtual A {
public:
virtual D Multiply (D one, D two){
//realization
}
};
功能Multiply
有实现在class A
。那么,这个代码很好?
B* b = new B();
b->Pow(one,two); // #2
和功能A::Multiply
或B::Multiply
会叫在#2
?我认为,this
在#1
将指向B对象的A部分。
当你尝试过什么事? – 2012-03-03 18:11:58
可能没有任何事情发生,因为Multiply是私人的。 – ipc 2012-03-03 18:13:01
对不起,所有功能都是公开的,我错过了这个 – gaussblurinc 2012-03-03 18:15:50