es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Se espera expresión primaria antes del token ‘;’ Se espera un identificador no calificado antes del token ‘=’

He creado dos clases en c++: una llamada compte y la otra banque.

class compte
{
    public:
        compte();
        compte(long,float);
        virtual ~compte();

        long Getnum() { return num; }
        void Setnum(long val) { num = val; }
        float Getsolde() { return solde; }
        void Setsolde(float val) { solde = val; }
        void deposerArgent(float);
        void retirerArgent(float);
        virtual void afficher();
    protected:
        long num;
        float solde;
};

class banque
{
    public:
        banque();
        virtual ~banque();
        string Getnom() { return nom; }
        void Setnom(string val) { nom = val; }
        string Getlieu() { return lieu; }
        void Setlieu(string val) { lieu = val; }
        list<compte*> Getcompte() { return compte; }
        void Setcompte(list<compte*> val) { compte = val; }
    protected:
    private:
        string nom;
        string lieu;
        list<compte*> compte;
};

Pero estoy recibiendo 2 errores en la siguiente línea de la clase banque:

list<compte*> Getcompte() { return compte; }

Se espera una expresión principal antes del token ‘;’.

Se espera un identificador no calificado antes del token ‘=’.</compte></compte></compte></compte>

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Los errores en la clase banque son causados por usar el mismo nombre tanto para la variable de clase como para la función getter.

    En la línea list<compte*> Getcompte() { return compte; }, compte se refiere a una variable de clase, pero también es el nombre de la clase compte en sí misma. Esto está causando confusión para el compilador.

    Para solucionar esto, cambia el nombre de la variable list<compte*> en la clase banque a algo más, como compteList. Luego actualiza las funciones getter y setter de la siguiente manera:

    class banque
    {
        public:
            banque();
            virtual ~banque();
            string Getnom() { return nom; }
            void Setnom(string val) { nom = val; }
            string Getlieu() { return lieu; }
            void Setlieu(string val) { lieu = val; }
            list<compte*> GetcompteList() { return compteList; }
            void SetcompteList(list<compte*> val) { compteList = val; }
        protected:
        private:
            string nom;
            string lieu;
            list<compte*> compteList;
    };
    

    Esto debería resolver los errores del compilador.</compte></compte></compte*>

Comments are closed.