Mam klasę drzewo w której wykorzystuję stos i klasę stos wykorzystującą drzewo.
Żeby uniknąć problemów z rekurencyjnym dołączaniem tych plików,próbowałem użyć #pragma once oraz ifndef,define(na końcu endif).Niestety w obudwu przypadkach kompilator zgłasza błędy mówiące wprost lub nie,że nie zdefiniowane są drzewo i stos.
Pliki nagłówkowe wyglądają tak
#pragma once
#include "DrzewoWyrazenia.h"
#include <iostream>
#include <string>
using namespace std;
class Stos{
private:
Stos *nastepny;
DrzewoWyrazenia *wsk;
public:
Stos::Stos();
bool isEmpty();
void push(DrzewoWyrazenia &tree);
DrzewoWyrazenia pop();
~Stos();
};
#pragma once
#include "Stos.h"
#include "TablicaSymboli.h"
#include < iostream >
#include <string>
#include <sstream>
using namespace std;
class DrzewoWyrazenia{
private:
string wezel;
DrzewoWyrazenia *lewe,*prawe;
public:
DrzewoWyrazenia::DrzewoWyrazenia(string wez);
DrzewoWyrazenia::DrzewoWyrazenia(string wez,DrzewoWyrazenia *lewe);
DrzewoWyrazenia::DrzewoWyrazenia(string wez,DrzewoWyrazenia *lewe,DrzewoWyrazenia *prawe);
DrzewoWyrazenia postfixToTree(string str,Stos & stos);
double calculate(DrzewoWyrazenia tree);
string unDefined(TablicaSymboli tab);
int op(string txt); //0 jeśli nie jest operatorem,1-jeśli jest jednoargumentowym,2-dwuargumentowym
~DrzewoWyrazenia();
};
I jeszcze jedna kwestia:można zrobić plik nagłówkowy z samymi includ'ami?
We wszystkich klasach mam prawie takie same i ładniej by było nie pisać tego samego w każdej (jest ich więcej niż te 2 tutaj).
Próbowałem coś takiego zrobić, ale kompilator zgłasza,że nie może otworzyć tego pliku.
Z góry dziękuje za pomoc.