View Single Post
Old 03-09-2010, 16:39   #1
Zero-Giulio
Member
 
Iscritto dal: May 2007
Messaggi: 292
[C++] Conflitti tra costruttore di copia e operatore di assegnamento

Per esporre il mio problema, incollo subito una classe semplice (ridotta al midollo):

Codice:
class obj {

    private:

        int arg1;

    public:

        obj ()
            : arg1 (1) {}

        obj (const string & s)
            : arg1 (15) {}

        const obj & operator = (const obj & p) {
            arg1 = p.arg1;
            return *this;
        }

        const obj & operator = (const string & s) {
            arg1 = 15;
            return *this;
        }

        int get () {
            return arg1;
        }

        void set (int arg) {
            arg1 = arg;
        }

};
La mia domanda è molto semplice:

perchè

Codice:
obj p;
p = "ciao";
funziona, e

Codice:
obj p ("ciao");
funziona pure, mentre

Codice:
obj p = "ciao";
non funziona?

Ultima modifica di Zero-Giulio : 03-09-2010 alle 16:46.
Zero-Giulio è offline   Rispondi citando il messaggio o parte di esso