当我尝试理解下面的代码时,我很困惑.任何人都可以解释这个黑客:
a.*b
Run Code Online (Sandbox Code Playgroud)
或者如果a是指向类的指针:
a->*b
Run Code Online (Sandbox Code Playgroud)
Dav*_*eas 10
这两个运算符都用于取消引用指向成员的指针.与常规指针不同,指向成员的指针不能自行解除引用,但必须应用于该类型的实际对象.这些二元运算符选择左侧的对象(或指针)并将指针应用于成员.
struct test {
int a, b, c;
};
int main() {
int test::*ptr;
ptr = &test::a;
test t;
t.*ptr = 5; // set t.a to 5
ptr = &test::b;
test *p = &t;
p->*ptr = 10; // set t.b to 10 through a pointer
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
116 次 |
| 最近记录: |