M
Du übergibst Deinen const char* an einen char* in der Memberfunktion. Im Argument des Konstruktors behauptest Du, daß Du nix verändern willst (const), übergibst es aber dann an eine Membervariable, wo man ändern darf. Der Compiler sagt "dann kann ich das aber nicht mehr kontrollieren" und verbietet daher die Zuweisung.
Dein Ansatz ist grundsätzlich schon richtig, aber Du wirst wohl übersehen haben, daß Deine Klasse Kunde eine Kopie(!) des gesamten Strings besitzen sollte, dann funktioniert das. In Deinem Fall ist das nämlich sehr gefährlich: Du legst das Objekt an und merkst Dir einen übergebenen Zeiger (der kann irgendwie gebastelt sein) auf einen String und läßt dann das Objekt mit diesem Zeiger leben. Wenn nun jemand den String ändert oder freigibt, wird Dein Objektzustand beschädigt.
Lösung:
Eine Kopie (new char[länge], strcpy, später im Destruktor ein delete[]) von einem durch const char* verzeigerten String machen oder gleich den Member Anschrift mit std::string ausprogrammieren. In beiden Fällen funzt dann aber die Übergabe des Originalwertes als const.