c++ char * Initialisierung im Konstruktor

Ich bin nur neugierig, ich will wissen, was hier Los ist:

class Test
{
char * name;
public:
Test(char * c) : name(c){}
};

1) Warum wird nicht Test(const char * c) : name(c){} Arbeit? Da char * name ist nicht const? Aber was ist mit diesem:

main(){
char * name = "Peter";
}

name ist " char*", aber "Peter" ist const char*, richtig? Also, wie funktioniert, die Initialisierung funktioniert?

2) Test(char * c) : name(c){ c[0] = 'a'; } - dies das Programm stürzt ab. Warum?

Sorry für meine Unwissenheit.

Was meinst du name(c) funktioniert nicht? Definieren Sie "funktioniert".
ungültige Konvertierung von const char* nach char*
"Peter" ist const char[6], nicht const char *.
Auf praktischer Hinweis, was Sie wollen, statt ist std::string name
dies ist für eine Prüfung, ich denke nicht, dass wir verwenden dürfen, std::string, weil es nicht ein Teil des Kurses

InformationsquelleAutor tuks | 2013-09-23

Schreibe einen Kommentar