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?