0

The following is an incomplete code from hackerrank-

#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
class AdvancedArithmetic{
    public:
        virtual int divisorSum(int n)=0;
};
class Calculator : public AdvancedArithmetic {
public:
    int divisorSum(int n) {
        return 0;
    }
};

int main(){
    int n;
    cin >> n;
    AdvancedArithmetic *myCalculator = new Calculator(); 
    int sum = myCalculator->divisorSum(n);
    cout << "I implemented: AdvancedArithmetic\n" << sum;
    return 0;
}

How does the line AdvancedArithmetic *myCalculator = new Calculator(); correct? Like how does this work? Creating *mycalculator object of an interface and initializing with Calculator? If Calculator had a few more functions which wasn't in the interface, then how would calling those functions work?

0 Answers0