Call a function from base class that uses the member functions of derived class

Viktor

I've created a class and a derived class that are almost completely the same. The only difference is that the derived class has 2 different functions and 3 extra variables. I want the called function from class B to use the inherited function but with the PrivFunctions of class B. Instead when called, the function uses the PrivFunctions of his own class, class A.

class A
{
protected:
double x,y,z;
Function() {
*do something using the member variables of class A and the member functions of class A* }

private:
double PrivFunction() {
*take in member variables from A and return a certain value* }

double PrivFunction2() {
*take in member variables from A and return a certain value* }

class B : public A
{
private:
double a,b,c;

double PrivFunction() {
*take in member variables from A,B and return a certain value* }

double PrivFunction2() {
*take in member variables from A,B and return a certain value* }

main() {
B classb();
B.Function() 
}

I've thought about adding the addresses of the private functions in the Function() but that seems too far fetched. I feel like I'm missing something simple but I just can't find out how to do this neatly

alejandrogiron

What you need to do is declare the function in the base class as virtual. This is a type of function that you define in the base class A, and then need to redefine in the sub-classes. Declaring functions as virtual ensures that the correct functions are being called and avoids ambiguity.

You code should look something like this:

class A
{
     protected:
     double x, y, z;
     //define as virtual
     virtual Function(){/*do something*/}

     /*
     rest of your code
     */
}
class B: public A
{
    private:
    double a, b, c

    public:
    //redefine your function in the subclass
    Function(){/*do something else*/}
    /*
    rest of your code
    */
}
int main()
{
    B classb();
    //This will now use B's Function
    classb.Function();
}

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

Accessing base member functions in class derived from template class

From Dev

Calling a member function of a derived class from the base class constructor

From Dev

returning instance of derived class from base class member function

From Dev

Call base() from derived class to execute base class function?

From Dev

Call function in derived class (from interface), from base class

From Dev

How to call a function from a derived class in a base class?

From Dev

Call derived class' function from a base class' instance

From Dev

Call function from Derived class stored in a Map with Base class type

From Dev

Member function pointer cast, from Derived to Base class

From Dev

Member functions of a derived class

From Dev

C++ call derived function from base class

From Dev

Moq a base class function from a derived class

From Dev

Printing from a derived class with a base class function

From Dev

C++ templates: Calling member function of derived template class from base class

From Dev

Call base member in lambda function from inherited class constructor?

From Dev

Access member of derived class from pointer of base class

From Dev

Accessing derived class member from base class pointer

From Dev

Accessing protected member in base class from a derived class

From Dev

Accessing protected member in base class from a derived class

From Dev

Accessing derived class member from base class pointer

From Dev

C++: Generic base member functions with specific types in derived class

From Dev

polymorphism c++, trying to access member functions of classes that are derived from abstract base class

From Dev

Call templated function with derived class arguments using base class pointers

From Dev

Calling a derived function from an array of the base class

From Java

Why can't a derived class call protected member function in this code?

From Dev

Python: Hide member of base class in derived class

From Dev

constexpr base class member set by derived class

From Dev

How to call an operator from a base class within the derived class?

From Dev

Call derived class method from base class instance

Related Related

  1. 1

    Accessing base member functions in class derived from template class

  2. 2

    Calling a member function of a derived class from the base class constructor

  3. 3

    returning instance of derived class from base class member function

  4. 4

    Call base() from derived class to execute base class function?

  5. 5

    Call function in derived class (from interface), from base class

  6. 6

    How to call a function from a derived class in a base class?

  7. 7

    Call derived class' function from a base class' instance

  8. 8

    Call function from Derived class stored in a Map with Base class type

  9. 9

    Member function pointer cast, from Derived to Base class

  10. 10

    Member functions of a derived class

  11. 11

    C++ call derived function from base class

  12. 12

    Moq a base class function from a derived class

  13. 13

    Printing from a derived class with a base class function

  14. 14

    C++ templates: Calling member function of derived template class from base class

  15. 15

    Call base member in lambda function from inherited class constructor?

  16. 16

    Access member of derived class from pointer of base class

  17. 17

    Accessing derived class member from base class pointer

  18. 18

    Accessing protected member in base class from a derived class

  19. 19

    Accessing protected member in base class from a derived class

  20. 20

    Accessing derived class member from base class pointer

  21. 21

    C++: Generic base member functions with specific types in derived class

  22. 22

    polymorphism c++, trying to access member functions of classes that are derived from abstract base class

  23. 23

    Call templated function with derived class arguments using base class pointers

  24. 24

    Calling a derived function from an array of the base class

  25. 25

    Why can't a derived class call protected member function in this code?

  26. 26

    Python: Hide member of base class in derived class

  27. 27

    constexpr base class member set by derived class

  28. 28

    How to call an operator from a base class within the derived class?

  29. 29

    Call derived class method from base class instance

HotTag

Archive