2016-07-24 6 views
2

私はこの猫のクラスを持っていて、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

なぜ 'init'(' self.attack = attack')で直ちに上書きするのでしょう?なぜ 'attack'に静的な初期化子(' = Double() ')を与えていますか? – 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 
} 
関連する問題