kzhereb / knu-is-ooop2019

Materials for "Fundamentals of OOP" course
MIT License
3 stars 0 forks source link

T10.42. Як викликати метод базового класу з підкласу? #42

Open yanaskyrda opened 4 years ago

aoyako commented 4 years ago

Можна викликати через <Base class name>::<method name> Приклад:

#include <iostream>
class Base
{
public:
    void print() {
        std::cout<<"Called from Base"<<std::endl;
    }
};
class Derived : private Base
{
public:
    void printSmth() {
        Base::print();
    }
};

int main(int argc, char *argv[])
{
    Derived d;
    d.printSmth();
    return 0;
}

У методі Derived викликається метод Base, тому результатом буде рядок "Called from Base". Варто зауважити, що приватні методи базового класу таким чином викликати не можна.

AntonHladkiy commented 4 years ago

Base::method(); якщо це не private метод.

RostyslavMV commented 4 years ago

class StudentWithRandom : Student { public override double GenerateResult(Competition competition) { double result = base.GenerateResult(competition); result += random.NextDouble() * result; LastResult = result; return result; } } base.GenerateResult(competition); - виклик методу базовго класу Student

i1red commented 4 years ago

За допомогою ::, тобто Base::doSomething()

ilyakorenevskyi commented 4 years ago

Використовуючи :: Наприклад Base::outputBase()