Pointer auf verschiede Variablentypen
-
Guten Anbend,
ich möchte eine Liste erstellen mittels Strukts und der Objektpointer soll auf verschiedene
Variablentypen zeigen können.(so wie im unteren Beispiel)Jedoch motzt mein Compiler rum, da int * object ein integer Pointer
ist und ich auf ein float verweisen möchte.Kann mir bitte jemand weiterhelfen das zu realisieren.
Danke im Vorraus,
mit freundlichen Grüßenstruct node{ struct node * next; struct node * prev; int * object; }; int main() { int a=0; float b=0; struct node node1; struct node node2; node1.object=&a; node2.object=&b; }
-
Verwende Templates.
template <typename T> struct Node { Node *previous; Node *next; T data; }; int main() { Node<int> node1; node1.data = 3; Node<float> node2; node2.data = 3.14; }
-
Ein kleines Problem habe ich immernoch und zwar soll data ein pointer sein, sodass ich porblemlos auf Klassen, Strukts und Variablen verweisen kann. Das habe ich porbiet jedoch meckert der Compiler
invalid conversion from `int' to `int*'und
[code]cannot convert `double' to `float*' in assignment [code][code="cpp"]
template <typename T>
struct Node
{
Node *previous;
Node *next;
T *****data;
};int main()
{
Node<int> node1;
node1.data = 3;Node<float> node2;
node2.data = 3.14;
}
[/code]
-
Nein, es soll wirklich
template <typename T> struct Node { Node *previous; Node *next; T data; // Ohne * };sein.
Wenn du dann z.B. einen Pointer auf int speichern möchtest kannst du immer noch
Node<int*> node;schreiben.
-
Dankeschön soweit habe ich nicht gedacht

mit freundlichen Grüßen