Ordinamento interno alla classe

di il
18 risposte

18 Risposte - Pagina 2

  • Re: Ordinamento interno alla classe

    jo93 ha scritto:


    Ecco

    prova generale.cpp(36): error C2780: 'const _Ty &std::max(const _Ty &,const _Ty &,_Pr)' : expects 3 arguments - 2 provided
    1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xutility(2086) : see declaration of 'std::max'
    1>prova generale.cpp(36): error C2782: 'const _Ty &std::max(const _Ty &,const _Ty &)' : template parameter '_Ty' is ambiguous
    1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xutility(2078) : see declaration of 'std::max'
    1> could be 'int'
    1> or 'quadro [2]'
    Non ne sono sicuro, ma credo che se elimini
    using namespace std; 
    dovrebbe andare anche senza rinominare max, però in quel caso dove occorre devi mettere esplicitamente il namespace std.
  • Re: Ordinamento interno alla classe

    Max è una funzione di libreria std. Se elimina il riferimento al namespace std ovviamente funzionerà MA dovrà indicare il namespace per tutto ... e non mi pare il caso.

    Bisogna solo evitare la collisione usando un nome di funzione diversa, per esempio massimo. Tutto qui.
  • Re: Ordinamento interno alla classe

    oregon ha scritto:


    max è una funzione di libreria std. Se elimina il riferimento al namespace std ovviamente funzionerà MA dovrà indicare il namespace per tutto ... e non mi pare il caso.

    Bisogna solo evitare la collisione usando un nome di funzione diversa, per esempio massimo. Tutto qui.
    Come dice oregon rinominare max, in massimo o maximo o un altro nome a piacere, è la strada più veloce e migliore. Anche perché eliminando il namespace sebbene non vada più in conflitto poi devi metterlo per le occorrenze di string, cin e cout (almeno queste sono quelle che vedo nel codice che lo richiedono).
    Comunque il compilatore te lo segnalerà se ometti qualche std dove occorre.
  • Re: Ordinamento interno alla classe

    Ho dichiarato la funzione massimo subito dopo la classe e ora funziona tutto, grazie mille!
Devi accedere o registrarti per scrivere nel forum
18 risposte