小编fro*_*cqc的帖子

指向非法参考成员的指针?

我们说我有:

// This is all valid in C++11.
struct Foo {
    int i = 42;
    int& j = i;
};

// Let's take a pointer to the member "j".
auto b = &Foo::j; // Compiler is not happy here
// Note that if I tried to get a pointer to member "i", it would work, as expected.
Foo f;
std::cout << f.*b; // Try using the pointer to member
Run Code Online (Sandbox Code Playgroud)

编译器抱怨我不能获取成员的地址,因为它是一个引用.确切地说:

语义问题:无法形成指向成员的指针指向成员'j'的引用类型'int&'

我知道这样做似乎毫无意义,但我只是想知道为什么不能这样做.

为什么这不可能?

c++ pointer-to-member language-lawyer

19
推荐指数
3
解决办法
4051
查看次数

标签 统计

c++ ×1

language-lawyer ×1

pointer-to-member ×1