Witam, miałem już kiedyś podobny problem i udało mi się z nim uporać właśnie w taki sposób jak to co przedstawię poniżej w kodach, niestety teraz coś nie działa i nie widzi dalej klas...
//Empira.h
#pragma once
#include <iostream>
#include "Pizza.h"
using namespace std;
class Pizza;
class Empira: public Pizza{
public:
Empira();
~Empira(void);
void OpiszPizze();
virtual Pizza* klonuj() const;
};
//pizza.h
#pragma once
#include "TypPizzy.h"
#include "Empira.h"
class Pizza{
protected:
TypPizzy tPizzy;
Pizza(TypPizzy);
public:
virtual ~Pizza(void);
virtual void OpiszPizze() = 0;
virtual Pizza* klonuj()const = 0;
TypPizzy ZwrocTyp() const;
};
//TypPizzy.h
#pragma once
enum TypPizzy{
Empira_t,
Margharita_t,
Ataman_t,
Nepalska_t,
Tropicana_t
};
Mam jeszcze kilka klas w tym projekcie, ale nie widzę sensu wstawiania ich tutaj bo chyba nie będą potrzebne. Kompilator wyrzuca mi coś takiego:
1>ClCompile:
1> Pizzeria.cpp
1>c:\users\lukasz\documents\moje programy\inzynieria\lab12\lab12\empira.h(8): error C2504: 'Pizza' : base class undefined
1>c:\users\lukasz\documents\moje programy\inzynieria\lab12\lab12\pizzeria.cpp(6): error C2440: '=' : cannot convert from 'Empira *' to 'Pizza *'
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1> Pizza.cpp
1>c:\users\lukasz\documents\moje programy\inzynieria\lab12\lab12\empira.h(8): error C2504: 'Pizza' : base class undefined
1> Lab12.cpp
1>c:\users\lukasz\documents\moje programy\inzynieria\lab12\lab12\empira.h(8): error C2504: 'Pizza' : base class undefined