Я работаю над проектом для своего класса информатики и просто познакомился с классами. Я закончил (я думаю), строя классы, которые мне нужны, но у меня возникли проблемы с их реализацией. Это то, что у меня есть для моей main.cpp:Объект абстрактного класса типа "CLASSNAME" не разрешен?
#include "ElectronicComponent.h"
#include "Resistor.h"
#include "Capacitor.h"
#include "Battery.h"
#include <iostream>
#include <string>
using namespace std;
int main()
{
const int NUMBER_OF_COMPONENTS = 7;
ElectronicComponent
*components[NUMBER_OF_COMPONENTS] =
{
new Resistor(5.0), // These are where my errors are.
new Capacitor(0.0001),
new Battery(9.0),
new Resistor(6.5),
new Battery(11.1),
new Capacitor(0.000001),
new Resistor(10000.0),
/* create more components here */
};
return 0;
}
И это пример одного из классов.
#include "ElectronicComponent.h"
class Resistor :
public ElectronicComponent
{
public:
Resistor(double);
virtual ~Resistor();
virtual double getValue() const = 0;
virtual std::string getUnits() const = 0;
virtual std::string to_string() const = 0;
};
.
#include "Resistor.h"
#include <string>
double value;
std::string units = "Ohm(s)";
Resistor::Resistor(double v)
{
value = v;
}
Resistor::~Resistor()
{
}
std::string Resistor::to_string() const
{
return "Resistor value (" + std::to_string(value) + " " + units + ")";
}
Для каждого элемента в массивеElectronicComponent следует называть ПолучитьЗначение и getUnits функций-членов и отображения результатов.
Перейти через массив ElectronicComponent во второй раз, и вывода изображения с помощью ElectronicComponent элемента.
Вот пример (предположим, что компоненты является массив ElectronicComponent указатели):
cout << "Component " << count << " " << *components[index] << endl;
Цель состоит в том, чтобы использовать жестко закодированные номера, чтобы в конечном итоге получить такой вывод:
Component 0 Resistor value (5.000000 Ohm(s))
Component 1 Capacitor value (0.000100 Farad(s))
Component 2 Battery value (9.000000 Volt(s))
Component 3 Resistor value (6.500000 Ohm(s))
Component 4 Battery value (11.100000 Volt(s))
Component 5 Capacitor value (0.000001 Farad(s))
Component 6 Resistor value (10000.000000 Ohm(s))