Generische Funktion zum Vergleich von Objekten verschiedener Klassen in der „Tiefe“?

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Generische Funktion zum Vergleich von Objekten verschiedener Klassen in der „Tiefe“?

by Guest » 15 Jan 2025, 16:22

Ist es möglich, eine generische Funktion zu schreiben, die Objekte verschiedener Klassen vergleichen kann, die nicht „operator==“ definieren, etwa:

Code: Select all

template
bool Compare(T obj1, T obj2) {
...?...
}

class Class1 {
int i;
int *pi;
};

class Class2 {
char c;
char *pc;
std::string *ps;
};

Class1 a1, b1;
Initialise...
bool c1 = Compare(a1, b1);

Class2 a2, b2;
Initialise...
bool c2 = Compare(a2, b2);
Wo die Werte, auf die verwiesen wird, auch verglichen werden, d. h.:

Code: Select all

*a1.pi == *b1.pi
Wenn ich die Speicherblöcke der beiden Objekte vergleichen würde, würde ich etwa Folgendes erhalten:

Code: Select all

a1.pi == b1.pi

Top