2016-07-24 6 views
2

Предположим, у меня есть этот класс cat, и я делаю 2 экземпляра его. Я хочу, чтобы кошка могла атаковать друг другаКак передать объект/класс как параметр функции

class ninjaCat { 
    var health : Double = 100.00 
    var attack = Double() 

    init(attack : Double){ 
     self.attack = attack 
    } 

    func thunderClaw(otherCat : ninjaCat){ 
     health = otherCat.health 
     otherCat.health = health - self.attack 
    } 
} 

var NinjaCat1 = ninjaCat(10.60) 
var NinjaCat2 = ninjaCat(20.15) 

NinjaCat1.thunderClaw(NinjaCat2) 

Возможно ли передать объект класса в качестве параметра функции?

+0

Что ошибка вы видите, когда вы запускаете этот код? – ganesshkumar

+0

Почему вы даете 'атаке' статический инициализатор (' = Double() '), когда вы будете немедленно перезаписывать его в' init' ('self.attack = attack')? – Alexander

ответ

1

Возможно, действительно. Однако вы должны проверить вас код там, потому что вы используете текущую жизнь атакующего кота вместо мишени, чтобы вычислить оставшуюся жизнь:

func thunderClaw(otherCat : ninjaCat){ 
    otherCat.health = health - self.attack 
} 

должен быть

func thunderClaw(otherCat : ninjaCat){ 
    otherCat.health = otherCat.health - self.attack 
} 

или просто

func thunderClaw(otherCat : ninjaCat){ 
    otherCat.health -= self.attack 
}