注册 登录
编程论坛 C++教室

各位大侠帮帮忙呀

wuyushuai521 发布于 2012-11-22 09:29, 389 次点击
各位同仁好:小弟在学习类指针时遇到了一个问题。假定person是一个类,请看下面一段程序:
person& person::set(string last)
{
lastname=last;
return *this;
}

如果正确的话,*this代表的是对象的值,而返回类型person&是指对象的地址值呀,匹配吗?
9 回复
#2
wuyushuai5212012-11-22 09:38
是不是以下的区别呢:
如果set函数返回值是person&,则调用时不用把结果赋于另外一个person对象;
如果set函数返回值是person,则调用时必须把结果赋于另外一个person对象。
#3
newdos2012-11-22 11:31
多看书,书上都有的。
*this 返回的是类对象本身,如同
Person a;
Person& ref = a; //引用指向类的对象

Person &ref = *(new Person); //另一种引用表现形式。

-------------------------------------------------
#include <iostream>

using namespace std;
class Person
{
public:
    void show()
    {
        cout << "Person" << endl;
    }

    Person& Ref()
    {
        this->show(); //通过this指针直接调用
        Person &ref = *this;
        ref.show(); //通过this的引用调用
        return *this;
    }
   
    Person& get_ref(void)
    {
        return *this;
    }
};
int main()
{
    Person a;
    Person &ref = a;
    ref.show();

    a.get_ref().Ref().show(); //通过对象的引用返回再调用Ref,Ref又返回引用,所以可以继续调用show方法。这就是返回对象引用的典型例子。
   
    return 0;
}
#4
mmmmmmmmmmmm2012-11-22 11:54
引用:就是对象的另一个名字
#5
wuyushuai5212012-11-22 13:52
三楼的同仁:问一下:
Person &ref = *this;
左边是地址,右边是对象本身……两者能相等吗?
#6
newdos2012-11-22 14:01
读一读这里吧:
http://baike.baidu.com/view/2129184.htm
你可能没有弄明白对象倒底是什么,变量而矣。
引用和指针的使用可以产生多态效果。
#7
wuyushuai5212012-11-22 15:46
谢谢,现在有些明白了
#8
宋立鹏2012-11-22 20:24
再看看书吧,注意引用和指针的区别啊
#9
zxd5432012-11-23 23:27
C++的&是引用符 不是取地址的
#10
wuyushuai5212012-11-24 21:13
谢谢
1