| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 297 人关注过本帖
标题:关于operator->()的理解
只看楼主 加入收藏
瓦茨
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2011-6-22
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:2 
关于operator->()的理解
我是个新手,看书时见到“operator->()”不理解是什么意思。
还有对"-〉"能不能多点说明。其右边的变量会是怎么移位的?
谢谢各位师兄指点!
2011-06-22 23:33
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:10 
重载了->操作符,举个例子吧

#include <iostream>
using namespace std;

struct foo
{
    void bar() const
    {
        cout << "foo::bar" << endl;
    }
};

struct baz
{
    void qux()
    {
        cout << "baz::qux" << endl;
    }

    baz( const foo* pfoo ) : pfoo_(pfoo)
    {
    }

    const foo* operator->() const
    {
        return pfoo_;
    }

private:
    const foo* pfoo_;
};

int main()
{
    foo a;
    baz b(&a);

    b.qux();
    b->bar(); // 看到这一句了吧

    return 0;
}
2011-06-23 08:13
瓦茨
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2011-6-22
收藏
得分:0 
有些没看懂,我运行了下,发现foo和baz交换了下。这就是重载数据么?
-〉可以按 载入右边的变量地址考虑么。
2011-06-23 23:00
快速回复:关于operator->()的理解
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027091 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved