Ich möchte eine Funktion, die den Wert Zeiger zurückgibt, unabhängig davon, welche Ebene von Zeiger es ist. Wie es könnte Einzel- oder Doppelzeiger OR Dreifachzeiger ODER mehr, aber diese Funktion sollte den Wert zurückgeben.Wie generische Funktion zu erstellen, die den Wert einer beliebigen Ebene des Zeigers in C++ zurückgibt?
Beispiel:
#include <iostream>
using namespace std;
template <class T>
T func(T arg){
// what to do here or there is some other way to do this?????
}
int main() {
int *p, **pp, ***ppp;
p = new int(5);
pp = &p;
ppp = &pp;
cout << func(p); // should print 5
cout << func(pp); // should print 5
cout << func(ppp); // should print 5
return 0;
}
So, jetzt möchte ich diese p, pp passieren, ppp in nur eine Funktion, und es sollte den Wert drucken oder zurückgeben '5'.
Unmöglich. Aber warum glaubst du, dass du das brauchst? – Amit
@Amit dachte ich einfach so, während ich vom Büro in mein Zimmer zurückkehrte: D –
Ein dreifacher Zeiger * ist * ein doppelter Zeiger * und * ein einzelner Zeiger auch. In der Tat bietet die Berücksichtigung aller Zeiger als einzelne Zeiger ein besseres mentales Modell. Dass das Ziel eines Zeigers auch ein Zeiger ist, ist in einem generischen Sinn von sehr geringer Bedeutung, denn Zeigertypen sind durchaus gültige Typen. –