如上所述,this当在类中定义的结构中调用时,指针如何起作用?假设我有以下代码:
class A {
public:
struct {
void bar() { std::cout << this << std::endl; }
} foo;
};
int main() {
A a; a.foo.bar();
std::cout << &a << std::endl;
std::cout << &a.foo << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
这会产生这个输出:
0x62fe9f
0x62fe9f
0x62fe9f
Run Code Online (Sandbox Code Playgroud)
a.foo与之共享同一个地址a,如何才能访问this指针foo?
使用this->foo引发错误:
test.cpp:20:23: error: 'struct A::<anonymous>' has no member named 'foo'