gpt4 book ai didi

c++ - C++ 类中的类

转载 作者:行者123 更新时间:2023-11-27 23:17:51 25 4
gpt4 key购买 nike

我定义并工作了一个类,它是 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 的私有(private)属性。有任何想法吗?我该如何解决这个问题?

最佳答案

sessio 需要在其 header 中包含完整的 TempSet 类定义。所以,#include "TempSet.h"

此外,avoid using namespace std ,特别是在标题中。

关于c++ - C++ 类中的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15321788/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com