菜鸟之路-09

#import <Foundation/Foundation.h>



@interface Person : NSObject{

    @public

    NSString *_name;

    int _age;

}


@end


@implementation Person



@end


@interface Dog : NSObject{

    @public

    NSString *_color;

}

-(Person *)lab;

@end


@implementation Dog


//-(类名 *)方法名:参数列表

-(Person *)lab{

    Person *p=[Person new];

      p->_name=@"黄瓜";

    p->_age = 16;

    return p;

}


@end

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

    @autoreleasepool {

        Dog *d =[Dog new];//只要是new就开辟了新的堆内存空间

        

     Person *p1= [d lab];//只要是new就开辟了新的堆内存空间  此处调用了Person new

        NSLog(@"姓名:%@  年龄:%d",p1->_name,p1->_age);

        

        Person *p2=[d lab];//只要是new就开辟了新的堆内存空间   此处调用了Person new

        p2->_age=19;   //改变了p2所指的堆空间里面的成员变量,因为这个是引用传递,所以相应的堆空间里面的成员变量也会改变。

        p2->_name =@"黄豆";

         NSLog(@"姓名:%@  年龄:%d",p2->_name,p2->_age);

        

        

        Person *p3 =[d lab];

        Person *p4 =p3;

        NSLog(@"姓名:%@  年龄:%d",p4->_name,p4->_age);

        

        p3->_name = @"黄毛";

        p3->_age  =17; //为什么这里改变了p3所指的成员变量的值,p4的成员变量值夜改变了,因为p3 p4所指的堆空间是相同的,无论修改p3 p4他们的值都会发生改变。

        NSLog(@"姓名:%@  年龄:%d",p4->_name,p4->_age);


        

    }

    return 0;

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值