我有一个定义和工作的类是 TempsSet。但现在我需要制作一个使用 TempsSet 的新的。这是我对新类的定义:
#ifndef SESSIO_H
#define SESSIO_H
class sessio {
public:
// constructors
sessio();
//Pre: --; //Post:posa el temps per defecte a (0,0)
sessio(string d, int h, int dur, string nom);
// Pre: --; Post: el temps sera (DL h,m,s)
void mostrarS() const;
//Pre: --; Post: mostra per pantalla l'horari d'una activitat
void llegirS();
//Pre: --; Post: llegeix per teclat l'horari d'una activitat
private:
TempsSet a_sess;
int a_dur;
string a_nom;
};
#endif // SESSIO_H
这就是 TempsSet 的类定义。这个完美地工作:
#ifndef TEMPSSET_H
#define TEMPSSET_H
using namespace std;
class TempsSet {
public:
// constructors
TempsSet();
//Pre:-- //Post:posa el temps per defecte a (0,0)
TempsSet(string d, int h, int m, int s);
// Pre:--; Post: el temps sera (DL h,m,s)
// mètodes consultors
string diaLlarg() const;
//Pre: Dia entrat correctament; Post: retorna el dia sense abreviar
string diaAbr() const;
//Pre: Dia entrat correctament; Post: retorna el dia abreviat
int hora() const;
// Pre: Hora entrada correctament; Post: retorna les hores del temps
int minut() const;
// Pre: Minuts entrat correctament; Post: retorna els minuts del temps
int segon() const;
// Pre: Segon entrat correctament; Post: retorna el segons del temps
bool esIgual(TempsSet t) const;
//Pre: Els dos temps entrats correctament; Post: retorna cert si els dos temps són iguals
bool esMajor(TempsSet t) const;
//Pre: Els dos temps entrats correctament; Post:retorna cert si el temps actual és major que el paràmetre
void mostrar() const;
//Pre: Els temps entrats correctament; Post: mostra el temps per pantalla en format d:h:m:s
void mostrarLlargs() const;
//Pre: Els temps entrats correctament; Post: mostra el temps per pantalla en format sense abreviar
void mostrarDHM() const;
//Pre: Els temps entrats correctament; Post: mostra el temps en format d:h:m
// mètodes modificadors
void llegir();
//Pre: h≥0 i 0≤m<60 i 0≤s<60 sino s'ha de tornar a introduir el valor; Post: llegeix el temps des de teclat en format h:m:s.
void llegirDHM();
//Pre: h≥0 i 0≤m<60 sino s'ha de tornar a introduir el valor; Post: llegeix el temps des de teclat en format h:m.
void incr(int s);
//Pre: h≥0 i 0≤m<60 i 0≤s<60; Post: incrementa el temps en el nombre de segons indicat
void incr (int d, int h, int m, int s);
//Pre--; Post: incrementa el temps en el nombre d’hores, minuts i segons indicats
void decr(int s);
//Pre: h≥0 i 0≤m<60 i 0≤s<60; Post: decrementa el temps en el nombre de segons indicats
void decr(int d, int h, int m, int s);
//Pre: h≥0 i 0≤m<60 i 0≤s<60; Post: decrementa el temps en el nombre d’hores, minuts i segons indicats
private:
int a_s;
int a_d;
};
#endif // TEMPS_H
但是当我尝试编译时,它说奇怪的错误,我在这一行的 'd' 后面缺少一个括号:
sessio(string d, int h, int dur, string nom);
TempsSet 没有命名类型,它指向 sessio 的私有属性。有任何想法吗?我该如何解决这个问题?