Klasse in Klasse ansprechen



  • Hi,

    ich habe folgende Klasse DiGraph gegeben:

    template <class TV, int maxNodes>
    class Digraph {
    
    private:
    	class Vertex 
    	{
    		public:
    			Vertex() {     // Konstruktor 
    			indegree = outdegree = ord = 0;
    			visited = living = false;
    			value = 0;
    			}
    			TV value;       // Markierung 
    			int indegree;  // Eingangsgrad
    			int outdegree; // Ausgangsgrad
    			int ord;       // Ordnungszahl des Knotens
    			bool visited;  // Knoten-"besucht"-Marke
    			bool living;   // Knoten existiert
    	};
    	double noArc;
    	int numvertices;				// Anzahl der Knoten eines Digraphen
    	int numarcs;					// Anzahl der Kanten eines Digraphen
    	Vertex vertex[maxNodes];		// repräsentiert Knoten des Digraphen
    	double arc[maxNodes][maxNodes]; // repräsentiert bewertete Kanten des Digraphen (-1=keine Kante) ARC = EDGE
    
    public:
    	Digraph():noArc(-1.0)                       // Digraphen generieren
    	{
    		for (int i=0;i<maxNodes;i++)		//Adajenz-Matrix füllen
    			for (int y=0;y<maxNodes;y++)
    				arc[i][y]=noArc;
    
    	}
    	/*~Digraph()                      // Digraphen freigeben
    	{
    	}*/
    	void InsertVertex (int n, TV m) // fügt neuen Knoten n mit Markierung m ein
    	{
    
    	}
    .......
    

    Wie kann ich nun in der MEthode InsertVertex die Attributte aus der Klasse Vertex setzen bzw. die einzelnen Objekte in "Vertex vertex[maxNodes];" ändern?


  • Administrator

    Krikus schrieb:

    Wie kann ich nun in der MEthode InsertVertex die Attributte aus der Klasse Vertex setzen bzw. die einzelnen Objekte in "Vertex vertex[maxNodes];" ändern?

    In dem du über den Memberzugriff darauf zugreifst? Wie bei jeder anderen Klasse auch. Hast du es denn überhaupt probiert?

    Grüssli



  • void InsertVertex (int n, TV m){ // fügt neuen Knoten n mit Markierung m ein
    		vertex[n].value = m;
    	}
    

    Sollte so funktionieren

    Vertex vertex[maxNodes] ist ja die Adajenz-Matrix, die brauchste hier erst einmal noch nicht zu ändern. (Hast ja nur 2 Parameter, für Nummer und für Inhalt)


Anmelden zum Antworten