Noch ne Anfängerfarge zu Klassen



  • class Warrior
    {
    private:
    	int armor;
    	int frequenz;
    	int dmgb;
    	int dmg;
    	int HP;
    public:
    	void Warrior::attack(Warrior opponent)
    	{
    	int all;
    	all = (dmg - opponent::armor) + dmgb;
    	opponent::HP -= all;
    	}
    };
    

    Fehler:

    error C2653: 'opponent' : Keine Klasse oder Namespace
    error C2653: 'opponent' : Keine Klasse oder Namespace
    

    Warum denn das??? Ich hab doch gesagt, dass opponet ein Warrior ist.

    Gruß
    Glamdring



  • versuchs mal mit nem "." statt dem "::"



  • #include <iostream>
    #include <conio.h>
    
    class Warrior 
    { 
    private: 
        int armor; 
        int frequenz; 
        int dmgb; 
        int dmg; 
        int HP; 
    public: 
        void attack( Warrior &opponent ); 
    };
    
    void Warrior::attack( Warrior &opponent ) 
    { 
        int all = (dmg - opponent.armor) + dmgb; 
        opponent.HP -= all; 
    }
    
    int main()
    {
      Warrior a,b,c;
    
      std::cout << &a << " " << &b << " " << &c << std::endl;
      a.attack(b);
      b.attack(c);
    
      getch();
    }
    

Anmelden zum Antworten