Dynamische Klasse



  • mach einfach:

    Human x1, x2;
    x1.giveName("Markus");
    x2.giveName("Sword");
    

    mit nem array gehts genau so. Nur musst ein bissl gscheiter machen, zb:

    Human List = new Human[250];
    
    ..
    


  • Ah danke, nehme die Array-Methode.



  • Will nicht. 😞

    #include "stdafx.h"
    #include <iostream>
    
    using namespace std;
    
    class Human {
    	private:
    		int age;
    	public:
    		void setAge(int newAge) { age = newAge; }
    		int getAge() { return age; }
    };
    
    int main() {
    	int humanCounter = 0, humans;
    
    	cout<<"How many humans: "; cin>>humans;
    
    	for(int o=0;o<humans;o++) {
    		Human hArray = new Human[humanCounter];
    		humanCounter++;
    	}
    
    	system("cls");
    
    	for(int i=0;i<humanCounter;i++) {
    		hArray[i].setAge(20);
    		cout<<"hArray["<<i<<"]'s Age: "<<hArray[i].getAge()<<"\n";
    	}
    
    	cin.get();
    }
    


  • will jetzt nicht genau schaun, poste die ERRORS



  • Fehler 1 error C2440: 'Initialisierung': 'Human *' kann nicht in 'Human' konvertiert werden 20
    Fehler 2 error C2065: 'hArray': nichtdeklarierter Bezeichner 27
    Fehler 3 error C2228: Links von ".setAge" muss sich eine Klasse/Struktur/Union befinden. 27
    Fehler 4 error C2228: Links von ".getAge" muss sich eine Klasse/Struktur/Union befinden. 28



  • unlimieD.paSe schrieb:

    Fehler 1 error C2440: 'Initialisierung': 'Human *' kann nicht in 'Human' konvertiert werden 20
    Fehler 2 error C2065: 'hArray': nichtdeklarierter Bezeichner 27

    Human *xxxx = new Human[500];
    

    und das zweite... da musst hArray definieren bevor du es verwendest.



  • DER DA schrieb:

    und das zweite... da musst hArray definieren bevor du es verwendest.

    Ich habs doch definiert!

    for(int o=0;o<humans;o++) {
    		Human *hArray = new Human[humanCounter];
    		humanCounter++;
    	}
    

    Geht trotzdem nicht.
    Erster Fehler ist aber behoben.



  • int main() { 
        int humanCounter = 0, humans; 
        Human hArray = new Human[500];
        cout<<"How many humans: "; cin>>humans; 
    
        system("cls"); 
    
        for(int i=0;i<humanCounter;i++) { 
            hArray[i].setAge(20);  // HIER WAR der Fehler: Du benutzt das, obwohls nicht definiert ist.
            cout<<"hArray["<<i<<"]'s Age: "<<hArray[i].getAge()<<"\n"; 
        } 
    
        cin.get(); 
    }
    

    naja du kannst doch nicht jedesmal ein HUMAND Objekt definieren mit 0,1,2,3.. Elementen.
    Du solltest dich auf eine Größe festlegen und diese auch benutzen. Natürlich kannst du auch später einen Wert zuweisen.



  • es ist noch immer falsch aber solltest halt mal schauen,dass du Objekte ganz am Anfang der main definierst und später benutzt.



  • PUSH ???


Anmelden zum Antworten