1. 程式人生 > >物件作為方法的引數傳遞

物件作為方法的引數傳遞

/*
 士兵
 事物名稱: 士兵(Soldier)
 屬性:姓名(name), 身高(height), 體重(weight)
 行為:打槍(fire), 打電話(callPhone)

 槍
 事物名稱:槍(Gun)
 屬性:彈夾(clip) , 型號(model)
 行為:上彈夾(addClip)

 彈夾
 事物名稱: 彈夾(Clip)
 屬性:子彈(Bullet)
 行為:上子彈(addBullet)
 */


#pragma mark - 槍
@interface Gun : NSObject
{
    @public
    int _bullet;    // 子彈
}
- (void
)shoot; @end @implementation Gun - (void)shoot { if (_bullet > 0) { _bullet--; NSLog(@"子彈還剩餘%d個", _bullet); }else { NSLog(@"槍裡沒有子彈"); } } @end #pragma mark - 士兵 @interface Solier : NSObject { @public NSString *_name; double _height; double
_weight; } - (void)fire:(Gun *)gun; @end @implementation Solier - (void)fire:(Gun *)gun { [gun shoot]; } @end int main(int argc, const char * argv[]) { Solier *solier = [Solier new]; solier->_name = @"大兵"; solier->_height = 1.88; solier->_weight = 130.33; Gun *gun = [Gun new]; gun->_bullet = 10
; [solier fire:gun]; [solier fire:gun]; [solier fire:gun]; [solier fire:gun]; return 0; }