C++ - Objekt-Gleichheit

Habe ich eine Klasse MyCloth und man eine Objekt-Instanz dieser Klasse, die ich instanziiert wie diese:

MyCloth** cloth1;

Und an einer Stelle im Programm steht, werde ich tun so etwas wie dieses:

MyCloth** cloth2 = cloth1;

Und dann irgendwann später, ich will zu überprüfen, um zu sehen, ob cloth1 und cloth2 sind die gleichen. (So etwas wie Objekt-Gleichheit in Java, nur hier MyCloth ist eine sehr komplexe Klasse und ich kann"t bauen eine isEqual Funktion.)

Wie kann ich diese Gleichheit prüfen? Ich dachte, vielleicht überprüfen, ob Sie auf den gleichen Adressen. Ist das eine gute Idee? Wenn ja, wie mache ich das?

Sie nicht haben ein "Objekt der Klasse MyCloth". Wenn Sie glauben, dass Sie wirklich überdenken eine Menge über C++.
...Warum der ptr ptr?
SB: ich war gerade versucht zu erklären, was ich tun will, ich weiß, ich kann"t haben ein Objekt der Klasse MyCloth, aber ich didn"t wissen, wie sonst zu setzen, es, ich"m mit C++ und versuchen, es herauszufinden, wie ich ein Projekt erstellen.
cloth1 und cloth2 Zeiger der Zeiger (jedes Tuch besteht aus Zeigern, die definieren, deren Parameter, Verhalten, und so weiter)
Zeiger sind einfach ein Speicherort im Speicher Platz. Es ist eine Adresse, die einen Speicherort im Speicher. Der "Typ" der Zeiger kennzeichnet die Interpretation der Nullen und Einsen in dieser Lage. Wenn Sie einen Zeiger-Zeiger, Sie haben eine Adresse von einer Adresse. Nichts von dem, was Sie haben, verweist auf eine Instanz einer Klasse. Allerdings, wenn Sie nicht initialisieren einer Klasse, wie 'MyCloth* c1 = new MyCloth();' Als Sie verwenden können, 'MyCloth* c2 = NULL;/*oder was auch immer*/ c1==c2;', um zu überprüfen, ob es die gleiche Instanz durch die Bestimmung, ob oder nicht, die zwei Zeiger auf den gleichen Speicher.Dies funktioniert NICHT mit virtueller Vererbung!

InformationsquelleAutor user2399378 | 2013-05-30

Schreibe einen Kommentar