指针的引用.this指针解答.

3 篇文章 0 订阅

本人水平优先,若有错误,妄留言指出,谢谢.

1.this指针解答: 

 class obejct {

private: int x; 

  public: void setX( value)

 {

x = value

  }

  }; //类在后面不断扩充

object ob; //定义对象

object ob1;

this指针其实就是 &ob 即 &ob == this,就是对象的地址. 每个对象的实体其实只包含成员变量,而不包括成员函数.那么成员函数和变量是怎么联系起来的?

对象ob.setX(1); 和ob1.set(2); 是调用的同一个函数,置不过隐式的传递了this指针(ob的地址),显示 ob.set(&ob,1); 而在函数调用时:

this.x = 1; this指针也会被加在上面. 这样就完成了函数调用. 

补充说明this指针: ob对象在内存中占4个字节即值存在 x变量.  xxxx: 00 00 00 00    //类似于这个 而&ob 即ob的地址其实就是 变量x地址

        即 this == &ob == &(ob.x)  //想验证的可以在VC下调试下

2.引用作为参数或者返回值:

  int& get(int& x);与 int get(int x); //明白他们的区别也就明白了引用 

前一个函数不会调用拷贝够咱函数,其实也是传递的地址,从而可以更改x的值在函数外有效

3.返回指针的引用

  class obejct {

private: int x; 

  public: int *& getX( value)

 {

return &x;

 }

  };

返回指针的引用.即指针也不会调用拷贝构造函数,而是直接传递x地址 . object ob; int * x = get(value); // 在复制的时候还是需要调用拷贝构造函数的.

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值