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.:
Wenn ich die Speicherblöcke der beiden Objekte vergleichen würde, würde ich etwa Folgendes erhalten:
Ist es möglich, eine generische Funktion zu schreiben, die Objekte verschiedener Klassen vergleichen kann, die nicht „operator==“ definieren, etwa:
[code]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);
[/code]
Wo die Werte, auf die verwiesen wird, auch verglichen werden, d. h.:
[code]*a1.pi == *b1.pi
[/code]
Wenn ich die Speicherblöcke der beiden Objekte vergleichen würde, würde ich etwa Folgendes erhalten:
[code]a1.pi == b1.pi
[/code]