【Objective-C】02-OC对象作为参数传递给函数
2014-12-04 23:08
260 查看
OC对象可以作为函数参数传递给参数,以下简述对象参数在函数中的两种情况:
一、对象作为参数传递到函数中,在函数内部对此对象的参数会影响到外部传递进来的对象。
二、对象作为参数传递到函数中,在函数内部指向其它的对象后,再对此参数对象进行操作时,不影响外部传递进来的对象。
如下文中的例子,函数test1为情况一,函数test2为情况二。
一、对象作为参数传递到函数中,在函数内部对此对象的参数会影响到外部传递进来的对象。
二、对象作为参数传递到函数中,在函数内部指向其它的对象后,再对此参数对象进行操作时,不影响外部传递进来的对象。
如下文中的例子,函数test1为情况一,函数test2为情况二。
#import <Foundation/Foundation.h> //声明Car类继承自NSObject @interface Car:NSObject { @public int wheels;//轮子 int speed;//速度 } //声明run方法 - (void)run; @end @implementation Car //实现run方法 - (void)run { //方法中的成员变量指当前对象的变量,即谁调用方法,访问的就是谁的成员变量 NSLog(@"%d个轮子,速度为%dkm/h的车子跑起来",wheels,speed); } @end //传递一个Car类型的参数给test1函数 void test1(Car *newCar) { //通过对象修改成员 newCar->wheels=5; } //传递一个Car类型的参数给test2函数 void test2(Car *newCar) { //声明一个新的对象 Car *c2=[Car new]; c2->wheels=5; c2->speed=300; //将参数变量指向新创建的对象。此操作过后,对参数指针变量的操作不影响外部传递进来的对象 newCar=c2; newCar->wheels=6; } int main() { //创建一个新的Car对象 Car *c=[Car new]; c->wheels=4; c->speed=250; //将新创建的对象传递给test2方法 test2(c); [c run]; return 0; }
相关文章推荐
- 对象作为函数参数时调用拷贝构造函数、引用做函数参数时只是传递地址
- 将对象作为参数传递给成员函数
- 第02天OC语言(08):对象作为方法的参数连续传递上
- 第02天OC语言(06):对象作为方法参数传递
- C++中关于将fstream对象作为函数参数传递相关问题说明
- python的raw_input()函数。 函数的可变对象和不可变对象作为参数传递。
- C++传递对象函数指针作为参数
- 类对象作为函数参数传递
- OC 对象作为方法的参数和返回值传递
- OC 对象作为方法的参数连续传递
- 对象作为函数参数时调用拷贝构造函数、引用做函数参数时只是传递地址
- 第02天OC语言(09):对象作为方法的参数连续传递下
- 指针作为函数参数传递
- 转:如何将二维数组作为函数的参数传递
- 多维动态数组作为函数传递参数
- asp.net(C#)函数对象参数传递的问题
- 指针作为函数参数传递 (转载)
- 指针作为函数参数传递
- Delphi 中将对象作为参数传递的使用
- asp.net(C#)函数对象参数传递的问题