Я пытаюсь вызвать метод convert (double) из моего дочернего класса: Kilogram. Как я могу назвать переопределенную функцию, а не оригинал. Ниже приведен мой код для моих трех классов.C++ Вызов переопределенной функции дочернего класса вместо родительского класса
main.cpp
#include <iostream>
#include <string>
#include "Conversion.cpp"
using namespace std;
int userInput;
Conversion con;
void menu() {
cout << "Select an option: " << endl;
cout << "1) KG to Lbs " << endl;
cout << "2) Celsius to Kelvin " << endl;
cout << "3) Teaspoons to millilitres " << endl;
cout << "4) Multiplication tables (x) " << endl;
cout << "5) Powers Tables (x) " << endl;
cout << "6) Exit " << endl;
cin >> userInput;
switch(userInput) {
case 1:
cout << con.convert(23.56);
break;
default:
break;
}
};
int main() {
menu();
system("pause");
return 0;
}
Conversion.cpp
class Conversion {
public:
Conversion::Conversion(void) {
}
virtual double Conversion::convert(double varrr){
return varrr;
}
};
Kilogram.cpp
#include "Conversion.cpp"
double pounds;
class Kilogram : public Conversion {
public:
Kilogram::Kilogram() {
}
virtual double Kilogram::convert(double kilos) override {
pounds = (kilos * 2.2);
return pounds;
}
};
Любая помощь будет очень признателен!
Почему бы это назвать? Ваша программа даже не создает * никаких объектов «Килограмм», а тем более вызывает их функции. – immibis
Точно, я смущен, как это сделать. Я потратил пару часов на создание объектов Kilogram и попытался вызвать метод convert(), но результата нет, и я получаю большое количество ошибок. – Jon