При компиляции кода C ++ ниже я получаю следующее сообщение об ошибке: < /p>
»« Неверная новая экспрессия абстрактного класса типа 'trainerclass », потому что функция« виртуальная void trainerclass :: AddItems () »является чистым в рамках« TrainerClass ». Количество тренера (int nbrtainer = 2;). В этом примере должны быть созданы объекты «материал»: материал [0] и материал [1] (указатели на класс «TrainerClass»). Затем то, что находится внутри каждого объекта «материал», следует определить, указывая класс «Бэгклас» на объекты «материал». < /p>
Сложность здесь заключается в том, что класс «TrainerClass» включает в себя чистую виртуальную функцию, которая предотвращает инициализацию объектов класса, как обычно. < /p>
Какой правильный синтаксис для инициализации объектов, полученных из виртуального класса с использованием концепции динамического связывания? (Все объекты должны быть названы «материал [x]» с индексом) < /p>
#include
using namespace std;
#define Training // to declare the global variable
///Definition of class Pocket
class pocket
{
public:
double volume;
};
///Definition of virtual class TrainerClass
class TrainerClass
{
public:
pocket *Space;
virtual void AddItems()=0;
};
///Definition of derived class
class BagClass: public TrainerClass
{
public:
double mass;
BagClass(double m2)
{
mass=m2;
}
void AddItems()
{
cout
Подробнее здесь: https://stackoverflow.com/questions/405 ... tual-class