Costruttore di copia

di il
18 risposte

18 Risposte - Pagina 2

  • Re: Costruttore di copia

    shodan ha scritto:


    E la risposta è: perchè la classe non deve essere copiabile. Il fatto che manchi la definizione è ininfluente, dato che tale costruttore è privato. Le mie osservazioni volevano farti riflettere su questo e invitarti a provare le cose, (che è il modo migliore di imparare).
    E se non usi un compilatore per studiare, mi spiace, ma stai sbagliando metodo di studio.
    Avevo frainteso leggendo troppo in fretta, pensavo che quell'assegnamento fosse un'osservazione che non aveva niente a che vedere con la discussione invece era più che pertinente.
    A volte mi ostino e pretendo di capire prima le cose e poi di sperimentarle invece in questi casi vale l'opposto quindi Shodan farò tesoro dei tuoi suggerimenti, credimi!
    In sostanza si definisce, permettimi il termine, una "funzione costruttore di copia" che non fa niente ma che si sostituisce a quella di default e non permette di copiare la classe.... mi chiedo a quale scopo però.
    Thanks
  • Re: Costruttore di copia

    Ci sono vari motivi perché una classe non sia copiabile, magari solo per evitare copie indesiderate.
    Però ora che sai come si fà (in vecchio stile pre C++11), quando avrai la necessità di non volere copie indesiderate saprai come fare.
  • Re: Costruttore di copia

    Nippolo ha scritto:


    In alcune circostanze si potrebbe non desiderare che un oggetto venga costruito per copia o assegnato. Ma, se non si definiscono overload, il C++ inserirà quelli di default, e se invece li si definiscono, il programma li userà direttamente. Come fare allora? La soluzione è semplice: definire degli overload fittizi e collocarli nella sezione privata della classe; in questo modo gli overload ridefiniti "nasconderanno" quelli di default, ma a loro volta saranno inaccessibili in quanto metodi non pubblici
    Da uno dei miei primi post in questo topic.
  • Re: Costruttore di copia

    Chiarissimi !
Devi accedere o registrarti per scrivere nel forum
18 risposte