所以我有一个名为LlistaEquips的类,它有一个名为equip的另一个类的表。 我把它放在静态内存上,但我现在需要用动态内存来做。这是我的LlistaEquips.h我必须实现析构函数和构造函数来制作对象的副本。
#ifndef LLISTAEQUIPS_H
#define LLISTAEQUIPS_H
#include "equip.h"
class LlistaEquips {
public:
// constructors
LlistaEquips();
//Pre: --; Post: Posa LlistaEquips per defecte.
LlistaEquips(int nEquips);
//Pre: Dades dels equip entrats correctament. Post: Inicialitza ListaEquips amb els Equips que li hem passat.
LlistaEquips(const equip & elem);
// consultors
int posVect(equip a) const;
//Pre: equip a introduir correctament. Post: Retorna la posicio en que s'ha d'inserir el seguent equip. Si l'equip ja es al vector retorna -1
int Quants() const;
//Pre: Nombre d'equips correcte. Post: Retorna el nombre d'equips que hi ha a la taula.
equip Llista(int i) const;
//Pre: Posicio 'i' de la llista ocupada. Post: Retorna l'equip a la posicio 'i' de la llista.
bool Existeix(equip a, int i) const;
//Pre: equip 'a' correcte i vector amb equips. Post: Retorna 'true' si el nom de l'equip 'a' ja es al vector.
void imprimir() const;
//Pre: Taula d'equips correcte. Post: Imprimeix per pantalla la taula d'equips.
// modificadors
void apuntarResultat(Partit a);
//Pre: Partit llegit correctament. Post: Apunta el resultat del partit a la taula d'equips. Amb el nom, punts i gols a favor i en contra.
void incerirVect (equip a, int pos);
//Pre: Equip introduit correctament, pos>=0. Post: Introdueix l'equip 'a' a la posicio 'pos' de la taula.
void ordenar(char a);
//Pre: Taula d'equips plena. 'a' introduit correctament. Post: Taula ordenada segons el criteri definit per 'a'.
private:
static const int MAX_EQUIPS=100;
equip *a_t;
a_t = new equip[MAX_EQUIPS];
int a_n;
};
#endif // LLISTAEQUIPS_H
这是我的equip.h:
#ifndef EQUIP_H
#define EQUIP_H
#include <iostream>
using namespace std;
class equip {
public:
// constructors
equip();
//Pre: --. Post: Posa equip per defecte.
equip(string n, int gf, int gc, int pts);
//Pre: Atributs de equip entrats correctament. Post: Inicialitza equip amb els atributs entrats
equip(const equip & elem);
// constructor de copia.
// consultors
string NomEquip() const;
//Pre: Nom de l'equip correcte. Post: Retorna el nom de l'equip.
int Golsf() const;
//Pre: Gols a favor de l'equip correctes. Post: Retorna els gols a favor de l'equip.
int Golsc() const;
//Pre: Gols en contra de l'equip correctes. Post: Retorna els gols en contra de l'equip.
int Punts() const;
//Pre: Punts de l'equip correctes. Post: Retorna els punts de l'equip.
bool esMenor(equip a, char b) const;
//Pre: Dos equip per poder-los comparar. Post: Retorna 'true' si el primer es menor segons el metode indicat per 'b' sino retorna 'false'.
// modificadors
void SumaNouEquip(int a, int b);
//Pre: Equip no existent a la llista. Post: Suma 'a' a gols a favor, 'b' a gols en contra si q==l, si q==v suma 'a' a gols en contra, 'b' a gols a favor
void SumaGP(int a, int b, bool q);
//Pre: Gols del partit llegits correctament. Post: Suma 'a' a gols a favor, 'b' a gols en contra si q=1, si q=0 suma 'a' a gols en contra, 'b' a gols a favor
void SumaGPVis(int a, int b);
//Pre: Gols del partit llegits correctament. Post: Suma 'a' a gols en contra, 'b' a gols a favor, suma 3 punts si a>b o 1 si a=b.
void Apuntar(string n, int a, int b);
//Pre: Partit llegit correctament. Post: Agafa les dades llegides des del partit i les passa a l'equip.
private:
string a_nom;
int a_golsf;
int a_golsc;
int a_punts;
};
#endif // EQUIP_H
我有点迷失,因为我不知道如何实现构成该对象副本的构造函数。我该怎么做?