Hallo zusamen, ich bin neu in C++ und habe noch ein paar
Verständnisfragen. Als kleine Aufgabe soll ein Stack dynamisch für
Zahlen erstellt werden. Hier mein Ansatz:
1 | stack.h:
|
2 |
|
3 |
|
4 | class cStack{
|
5 |
|
6 | friend int main(void);
|
7 | friend void showStack(cStack *Start);
|
8 |
|
9 | private:
|
10 |
|
11 | int top;
|
12 | double number;
|
13 | class cStack *next;
|
14 | class cStack *Start;
|
15 |
|
16 | public:
|
17 |
|
18 | cStack(void); //Konstruktor
|
19 | bool push(double number);
|
20 | double pop(void);
|
21 | int count(void);
|
22 | void drop(void);
|
23 | void swap(void);
|
24 |
|
25 | double get(int i);
|
26 |
|
27 | };
|
28 |
|
29 | stack.cpp:
|
30 |
|
31 | #include"stack.h"
|
32 | #include<iostream>
|
33 | #include<stdio.h>
|
34 |
|
35 | #define TRUE 1
|
36 | #define FALSE 0
|
37 |
|
38 | cStack::cStack(void)
|
39 | {
|
40 | number=0;
|
41 |
|
42 | Start=NULL;
|
43 | }
|
44 |
|
45 | bool cStack::push(double number)
|
46 | {
|
47 |
|
48 | int Fehler=0;
|
49 |
|
50 | if(!Fehler)
|
51 | {
|
52 | //next = new cStack;
|
53 | Start = (cStack*)malloc(sizeof(cStack));
|
54 |
|
55 | if(Start==NULL) Fehler= -1;
|
56 | }
|
57 |
|
58 | if(!Fehler) (Start)->number= number;
|
59 |
|
60 | Start = Start->next;
|
61 |
|
62 | return true;
|
63 |
|
64 | }
|
65 |
|
66 | double cStack::pop(void)
|
67 | {
|
68 |
|
69 | return 0;
|
70 |
|
71 | }
|
72 |
|
73 | int cStack::count(void)
|
74 | {
|
75 |
|
76 | return 1;
|
77 | }
|
78 |
|
79 | void cStack::drop(void)
|
80 | {
|
81 |
|
82 | }
|
83 |
|
84 | void cStack::swap(void)
|
85 | {
|
86 |
|
87 | }
|
88 |
|
89 | double cStack::get(int i)
|
90 | {
|
91 |
|
92 | return 0;
|
93 |
|
94 | }
|
95 |
|
96 | Rechner.cpp:
|
97 |
|
98 | #include<iostream>
|
99 | #include"stack.h"
|
100 | using namespace std;
|
101 |
|
102 | void showStack(cStack *Start);
|
103 |
|
104 | int main(void)
|
105 | {
|
106 | int rueckgabe;
|
107 |
|
108 | cStack Stack;
|
109 |
|
110 | rueckgabe = Stack.push(18);
|
111 |
|
112 | Stack.push(9);
|
113 |
|
114 | //showStack(Stack.Start);
|
115 |
|
116 | cout << "Rueckgabe: " << rueckgabe <<endl;
|
117 |
|
118 | //cout << "Stack: " << Stack.Start->number <<endl;
|
119 | //hier habe ich versucht die erste Zahl auszugeben.
|
120 |
|
121 | system("PAUSE");
|
122 |
|
123 | return 0;
|
124 |
|
125 |
|
126 | }
|
127 | //Diese Funktion soll für die Ausgabe dienen, aber ich bekomme immer eine Fehlermeldung und rufe sie in main nicht auf ;)
|
128 | void showStack (cStack *Start)
|
129 | {
|
130 | while(Start){
|
131 |
|
132 | cout << "Stack: " << Start->number << endl;
|
133 | Start = Start->next;
|
134 | }
|
135 |
|
136 | }
|
Ich habe Probleme den Stack auszugeben. Das Programm steht noch in den
Grundzügen, somit sind noch nicht alle Methoden implementiert und das
Error-Handling ist auch noch nicht fertig. Ich wäre sehr dankbar für
eine Antwort :)