我只是有一个非常基本的问题。无法在谷歌上搜索...我不知道是什么 - >是和它在c ++中的作用,例如:
render = Surface->Logic->Scale;
答案 0 :(得分:7)
在C ++ ->
中有2个上下文:
它取消引用指针,所以基本上它会将变量存储在某个偏移处的内存位置。因此,
Surface->Logic->Scale;
相当于,
(*Surface).Logic->Scale; // same applies for 'Logic' too
关于对象,您可以通过将其重载为
来模拟此运算符struct B { void foo(); };
struct A {
B *p;
B* operator -> () { return p; }
};
用法将是,
A obj;
obj->foo();
答案 1 :(得分:2)
你有一本C ++书吗?如果答案是否定的,那么为什么不呢。
如果答案是肯定的,我确信这包含在内。
无论如何,' - >' symbol是指针取消引用运算符。
---编辑---
对于那些投票不足的人来说,这是问题答案的要点,其他任何东西都是舀勺。在此上下文中详细解释指针解除引用是多余的,因为在SO和谷歌中已经解释了恶心,并且让OP执行后续搜索(在指针取消引用上)将比短时间更有益。关于那是什么的讲座。
答案 2 :(得分:2)
->
运算符取消引用指针并访问该成员。它类似于写作
(*(*Surface).Logic).Scale
。
所以在上面,我们首先使用
推导Surface
指针
*Surface
取消引用指针后,我们可以访问Logic
成员
(*surface).Logic
由于Logic也是一个指针,你需要取消引用指针
*(*Surface).Logic
现在您可以访问Scale
成员
(*(*Surface).Logic).Scale
正如您所看到的,这比使用->
运算符要麻烦得多。对于poiner而言,他们会在一个人身上找到成员。
答案 3 :(得分:2)
嗯,c ++中的操作符箭头( - >)用于使用指针访问struct
的成员。例如,你说:
struct A {
int x;
};
A* mp = new A;
然后访问元素x
并分配给你必须写的其他元素y
:
int y = mp -> x;
有关详细说明,请参阅此处: