PROBLEMA Constructor C++

Pubblicità

AITUS95

Nuovo Utente
Messaggi
109
Reazioni
11
Punteggio
39
Salve ragazzi, rieccomi di nuovo, stavolta ho un problema ad estrarre una stringa da una classe private e riportarla in un construction, in pratica il compilatore non mi da errori nel codice, ma quando compilo non mi da il messaggio automatico, dove sbaglio ?

Codice:
#include <iostream>
#include <string>

using namespace std;

class PublicClass {
    public:
        PublicClass(string x){
             SetName(x);
        }
     
        void SetName (string z){
            z = nome;
        }
     
        string GetName (){
            return nome;
        }
     
        private:
            string nome;
     
};

int main (){
    PublicClass Object("my name is negan");
 
}
 
Cosa significa che quando compili "non ti da il messaggio automatico"?

Da quello che vedi sbagli nel metodo SetName, devi assegnare il membro "nome", non la variabile "z" (nome=z;)
 
Inverti il nome con z nel metodo SetName(...) e aggiungi un
Codice:
cout << Object.GetName() << endl;
nel main per ottenere l'effetto desiderato.
 
Cosa significa che quando compili "non ti da il messaggio automatico"?

Da quello che vedi sbagli nel metodo SetName, devi assegnare il membro "nome", non la variabile "z" (nome=z;)

Mi riferivo al testo automatico che doveva darmi il construction, ma non me lo dava

Inverti il nome con z nel metodo SetName(...) e aggiungi un
Codice:
cout << Object.GetName() << endl;
nel main per ottenere l'effetto desiderato.

ti ringrazio !




Inviato da iPhone tramite App ufficiale di Tom\\\'s Hardware Italia Forum
 
Temo di aver frainteso leggermente quello che volevi fare.
Se con "Automatico" intendi mettere in output la stringa name ogni volta che viene creata un istanza della classe in questione, allora devi mettere un cout non nel main, ma nel costruttore subito dopo aver impostato gli attributi.
Es:
Codice:
class PublicClass {
    private:
         string name;
    public:
        PublicClass(string name){
            this.name = name;
             cout<<name<<endl; //O in alternativa getName()
        }
...
}
int main (){
    PublicClass Object("my name is negan"); //Output: my name is negan
    PublicClass Object2("ABCD"); //Output: ABCD
}
 
Ultima modifica:
No ragazzi allora, mi sono espresso io male, per automatico intendevo un generico output nulla di che

Temo di aver frainteso leggermente quello che volevi fare.
Se con "Automatico" intendi mettere in output la stringa name ogni volta che viene creata un istanza della classe in questione, allora devi mettere un cout non nel main, ma nel costruttore subito dopo aver impostato gli attributi.
Es:
Codice:
class PublicClass {
    private:
         string name;
    public:
        PublicClass(string name){
            this.name = name;
             cout<<name<<endl; //O in alternativa getName()
        }
...
}
int main (){
    PublicClass Object("my name is negan"); //Output: my name is negan
    PublicClass Object2("ABCD"); //Output: ABCD
}

No ti sei espresso benissimo, il mio intento era estrarre l'elemento string nome dal private e riportarlo nel main


Inviato da iPhone tramite App ufficiale di Tom\\\'s Hardware Italia Forum
 
Pubblicità
Pubblicità
Indietro
Top