Hallo,
ich schreibe gerade an einem Stack auf dem ich doubleWerte rauflege und mit diesen hantiere. Nur stehe ich vor dem Problem das ich es nicht schaffe den Stack in anderen Klassen zu manipulieren es geschieht alles aus der main.cpp heraus, was nicht so toll ist.
TRStack.cpp
Zitat:
#include<iostream>
#include<stack>
#include "TRstack.h"
using namespace std;
stack<double> Example;
TRstack::TRstack(int N) // Stack initialisieren
{
//stack<double> N; Funktioniert nicht
cout << "Stack initialisiert" << endl;
}
|
TRStack.h
Zitat:
class TRstack
{
public:
TRstack(int);
bool TRempty(); // ist der Stack leer?
};
|
Main.cpp
Zitat:
#include "stdafx.h"
#include <iostream>
#include <stack>
#include "TRoperator.h"
#include "TRstack.h"
int _tmain(int argc, _TCHAR* argv[])
{
TRstack Example(0); //initialisieren
Example.TRempty(); //das funktioniert
}
|
(aufs Wesentliche beschränkt)
Ich würde nun gerne eine Klasse Operator schreiben in der ich auf den Stack mit Example.pop/push/top(); zugreifen kann. Sodass ich eine Addition in der Klasse Operator mit x1=Example.top(); ... x3=x1+x2 aufrufen kann. Bis dato mache ich das in der Main.cpp mit einem meines Erachtens zu verschachtelten Aufruf der so aussieht TRoperator::OPaddition(Example.TRtop(),Example.TRt op()) (Mir ist bewusst das er hier nur denselben Werte zweimal nimmt.) Wie kann ich das nun so ändern das ich eben einen Stack habe den ich vom ganzen Programm aus manipulieren kann?
Edit: Benutze Visual C++