У меня есть 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
будет указывать на A-часть B-объекта.