Ciao a tutti!
mi sto esercitando in alcune esercitazioni sulle classi perchè tra 15 giorni ho un esame!
ora ho creato il file d'intestazione (.h) e compila correttamente, mente il cpp mi da dei problemi.
cinema.h
codice:
#include <ostream>
#include <cstring>
using namespace std;
class Cinema {
char* nomecinema[31];
int F;
int C;
bool* c;
public:
Cinema(int,int,char*);
bool prenota(char,int);
bool cancella(char,int);
friend ostream & operator<<( ostream &, const Cinema &);
int operator!() const;
Cinema& operator=(const Cinema&);
Cinema& operator+=(const int);
~Cinema(){delete []c;}
};
cinema.cpp
codice:
#include "cinema.h"
#include <iostream>
Cinema::Cinema(int n, int p, const char*nome){
if (n<=0|| n>26)
{ n=26;}
if (p<=0|| p>9)
{p=9;}
if( strlen(nome)> 30)
{strcpy(nome, "nomeacaso");}
else
{
strcpy(nomecinema, nome);
}
c=new bool[n*p];
for (int i=0; i<n*p; i++)
{c[i]=false;} //creo una matrice booleana
// di n file e p posti vuota.
}
il compilatore mi da il seguente errore:
cinema.cpp:5:2: error: prototype for ‘Cinema::Cinema(int, int, const char*)’ does not match any in class ‘Cinema’
cinema.h:6:7: error: candidates are: Cinema::Cinema(const Cinema&)
cinema.h:13:2: error: Cinema::Cinema(int, int, char*)
avete qualche idea de perchè? in poche parole mi sta dicendo che non trova il costruttore nel file.h!! come mai? la sintassi è giusta!
grazie in anticipo per l'aiuto!