小编Usi*_*ten的帖子

在类结构中,"this"如何工作?

如上所述,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'

c++ struct pointers class this

0
推荐指数
1
解决办法
91
查看次数

标签 统计

c++ ×1

class ×1

pointers ×1

struct ×1

this ×1