编程论坛
注册
登录
编程论坛
→
C++教室
关于operator->()的理解
瓦茨
发布于 2011-06-22 23:33, 297 次点击
我是个新手,看书时见到“operator->()”不理解是什么意思。
还有对"-〉"能不能多点说明。其右边的变量会是怎么移位的?
谢谢各位师兄指点!
2 回复
#2
rjsp
2011-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