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

关于operator->()的理解

瓦茨 发布于 2011-06-22 23:33, 297 次点击
我是个新手,看书时见到“operator->()”不理解是什么意思。
还有对"-〉"能不能多点说明。其右边的变量会是怎么移位的?
谢谢各位师兄指点!
2 回复
#2
rjsp2011-06-23 08:13
重载了->操作符,举个例子吧

#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;
}
#3
瓦茨2011-06-23 23:00
有些没看懂,我运行了下,发现foo和baz交换了下。这就是重载数据么?
-〉可以按 载入右边的变量地址考虑么。
1