Próbowałem dowiedzieć się o specyfikatorze dostępu w c++, więc uzyskuję dostęp do publicznego i chronionego elementu członkowskiego z klasy bazowej i wykonałem funkcję add w klasie pochodnej, jak pokazano poniżej,

#include<iostream>
using namespace std;

class Base
{
    public:
        int a;
    protected:
        int b;
};

class Derived : public Base
{
    public:
        int sum;
        void add()
        {   
            a = 10;
            b = 20;
            sum = a + b;
        }
};


int main()
{
    Derived Obj;
    Obj.add;
    cout << "The sum : " << Obj.sum << "\n";
    return 0;
}   

Ale podczas kompilacji otrzymuję następujący komunikat o błędzie „instrukcja nie może rozwiązać adresu funkcji przeciążenia” czy ktoś może wyjaśnić, na czym polega błąd?

Z góry dziękuję

1
Jayakumar 14 listopad 2018, 08:12

1 odpowiedź

Najlepsza odpowiedź

W wywołaniu funkcji brakuje nawiasu w następującym wierszu:

Obj.add;

Powinno być: Obj.add();

2
P.W 14 listopad 2018, 08:15