Auf anderen Klassens Methoden zugreifen



  • Hi! Das selbe Projekt wie noch gestern aber viel weiter:

    Struktur:
    eine Main, 2 Header und zu jeder Header ein .cc File!

    die eine Header gehört zu einer "map" (ein Array, auf jedem Feld sind binär Werde drauf). Nun muss ich aber, da meine Map auch eine "Spielfigur" hat, über meine andere Klasse "agent" einen Agenten draufsetzen.

    Damit das auch alles in der echten Map verändert wird, wenn ich dort was rauslösche, mach ich das mit Pointern.

    Der Print sollte die Map ausgeben, allerdings, wenn ich in der main dann meine setmap aufrufe, und er zu dem Punkt kommt stirbt er in der ersten For-schleife der Ausgabe. Woran liegt das? Hier die Codes:

    der Teil in der Agent.cc sieht so aus:

    void agent::setmap(karte *ka)
    {
    ka=k;
    
    ka->print();
    

    die Header Dazu:

    #ifndef AGENT 
    #define	AGENT
    
    #include "karte.h"
    
    class agent
    {
    	public:
    	agent();
    	agent(int coordx, int coordy);
    	void walk();
    	int shoot();
    	int die();
    	int smell();
    	int take();
    	int see();
    	int feel();
    	void setmap(karte *ka);
    
    	private:
    	char wohinlaufen;
    	int cx;
    	int cy;
    	int shoots;
    	int cash;
    	bool zustand;
    	karte *k;
    
    };
    
    #endif
    

    Und hier ist das zugehörige Print aus der Karte.cc

    void karte::print()
    {
    	for(int i=0; i<cx; i++)
    	{
    		for(int j=0; j<cy; j++)
    		{
    			cout <<map[i][j] << "\t";
    		}
    	cout << endl;
    	}
    }
    


  • Wenn du in setmap die Karte setzen willst, dann solltest du die Zuweisung vertauschen:

    k=ka;
    

Anmelden zum Antworten