一千萬個為什麽

搜索

c ++使用靜態內存實現一個類到動態內存

所以我有這個叫做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 
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

我有點迷路,因為我不知道如何實現構造函數來創建該對象的副本。我該怎麽做?

最佳答案

暫時沒有最佳答案

轉載註明原文: c ++使用靜態內存實現一個類到動態內存