对象作为函数参数

//  对象作为函数的参数--类与对象的内存分析
//成员方法和函数的区别
#import <Foundation/Foundation.h>

@interface Car : NSObject{
    @public
    int wheel;
    int speed;
}
-(void) run;
@end

@implementation Car
-(void)run{
    NSLog(@"%i轮子,时速%i的车子跑起来了",wheel,speed);
}
@end

//函数一:这种情况,c->wheel的值传进来了,并不会影响对象成员变量的值
void test(int m,int s){
    m=20;
    s=300;
}

//函数二:这种情况能够改变对象的值
void test1(Car* mc){
    mc->wheel=5;
}

//函数三:这种情况不会改变
void test2(Car* mc){
    Car *c2 = [Car new];
    c2->wheel = 5;
    c2->speed = 300;

    mc = c2;
    mc->wheel = 6;
}

int main(int argc, const char * argv[]) {

    Car* c=[Car new];

    c->wheel=4;
    c->speed=200;

//    test(c->wheel,c->speed);
    test1(c);

    [c run];
    return 0;
}
时间: 2024-08-25 09:49:43

对象作为函数参数的相关文章

对象做函数参数和函数返回值时,调用复制构造函数,构造函数,析构函数的情况

// 对象做函数参数和返回值.cpp : 定义控制台应用程序的入口点.//exit(0)表示正常退出程序,exit(0)表示异常退出 //在调用input时,编译器用对象A去创建了形参对象temp,调用了复制构造函数,对象A中的数据复制给了对象temp// 在input函数中,执行temp.set(s),为对象temp中数据成员str申请了动态储存空间,并设置了输入的字符串//并没有改变实参A中的数据成员str的储存空间,故在执行语句A.show()后输出的字符串并没有改变.在函数调用结束后 /

Effective JavaScript Item 55 接受配置对象作为函数参数

接受配置对象作为函数参数 虽然保持函数接受的参数的顺序很重要,但是当函数能够接受的参数达到一定数量时,也会让用户很头疼: var alert = new Alert(100, 75, 300, 200, "Error", message, "blue", "white", "black", "error", true); 随着函数的不断重构和进化,它能够接受的参数也许会越来越多,最终就像上面的例子那样. 对

[c++]基类对象作为函数参数(赋值兼容规则)

编程处理教师的基本情况.要求: 1.定义一个"person"类,用来存储及处理人的姓名.性别.年龄,成员函数自定: 2.定义"teacher"类,公有继承"person"类用来存储教师所在学院.所学专业.学历.学位.职称.教龄等,成员函数自定. 3.处理程序,主要包括: ⑴显示姓名.性别.年龄函数:既能显示person对象的姓名.性别.年龄,又能显示teacher对象的姓名.性别.年龄(用person引用对象为形参): ⑵显示教师所在学院.所学专

类对象做函数参数(传值和传引用)

一.传引用 #include "stdafx.h" #include <iostream> using namespace std; class A { public: virtual void show(){cout<<"A"<<endl;} }; class B:public A { public: virtual void show(){cout<<"B"<<endl;} }; c

C++容器类对象函数参数问题

总之一句话:容器类对象作为函数参数,与整数类型作为函数参数的传递特性相同. 验证程序 #include "stdafx.h" #include <iostream> #include <list> using namespace std; void do_something1(list<int> *ls) { ls->push_back(1); ls->push_back(2); ls->push_back(3); return;

黑马程序员-OC学习日记-对象与方法、对象与函数

------- ios培训. android培训.java培训.期待与您交流! ---------- 一.NSString类简介 1.NSString是OC中用来表示字符串的一个类 2.NSString类创建 (1)通过字面量方式创建 NSString * str = @"要努力学习!"; (2)通过对象方法创建 NSString * str1 = [NSString alloc]; str1 = [str1 initWithUTF8String:"今天雾霾好大!"

C/C++语言中的函数参数传参三种对比

学了很长时间C/C++有时指针方面还是有点乱. 希望大神发现如果下面有不对的地方请指出.我发现之所以我乱就是因为中文表述不准确的问题,比如 ,地址值和地址 #include <iostream> #include <string> using namespace std; void swap1(string* str1,string* str2){// 1.对象指针作为函数参数 //影响实参 cout<<&str1<<" "<

python--函数的返回值、函数参数的使用、名称空间与作用域、函数嵌套、函数对象

今天学习内容有函数的返回值.函数参数的使用.名称空间与作用域.函数嵌套. 下来我们一一查看. 函数的返回值 看几个栗子: def func(x): return x**2 y=func(10) print(y) def foo(): return None res=foo() print(res) def foo(): return{'a':1} res=foo() print(res['a']) def foo(): return {'a':1},1,'a',[1,2] res=foo() p

agruments应用——求出函数参数的总合&amp;&amp;css函数——设置/读取对象的属性&amp;&amp;当前输入框高亮显

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-