У меня есть 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-объекта.
Что произошло, когда вы пробовали ? –
Наверное, ничего не произошло, потому что Multiply является частным. – ipc
извините, все функции общедоступны, я пропустил это – gaussblurinc