2016-08-21 2 views

Antwort

0

Ich bin nicht völlig vertraut mit dem Kontext, aber seine Methode macht ein anderes Nachrichtenobjekt. Man hätte es so gemacht

Message m = orig; 

aber das Problem mit direkter Zuordnung ist, dass es nur eine neue Referenz von orig Message-Objekt erzeugt. Wenn ich irgendetwas wie

dann m.what wird auch "test", da beide auf dasselbe Objekt zeigen.

Um Originaldaten zu erhalten, wenn wir einige Änderungen am vorhandenen Objekt vornehmen müssen, kann man diese Methode verwenden.

0

Es erstellt ein neues Objekt, so dass Sie das Original ändern und die Kopie nicht ändern können. Dies ist manchmal nützlich, wenn Sie eine zweite Instanz benötigen, die mit der ursprünglichen identisch ist. Mit Nachrichten zum Beispiel möchten Sie vielleicht zwei Kopien einer Nachricht zu einem Handler hinzufügen, so dass sie zwei Nachrichten verarbeitet, nicht nur eine. Dies ist tatsächlich eine so häufige Verwendung, dass es in einige Sprachen eingebaut ist - in C++ sprechen sie von Kopierkonstruktoren, die dies tun.

Verwandte Themen