Tim*_*ech 3 c++ class operators
在这本书中,我有我学习指针和我刚刚得到有关OOP的章节进行(吐在地面上)反正它告诉我,我可以用一个成员选择操作这样的( - >).它说这就像"." 除了指向对象而不是成员对象.什么是差异,它看起来像是以同样的方式使用...
哪里:
Foo foo;
Foo* pfoo = &foo;
Run Code Online (Sandbox Code Playgroud)
pfoo->mem在语义上是相同的(*pfoo).mem.
或者,换句话说:foo.mem在语义上是相同的(&foo)->mem.
是的,它实际上做了同样的事情,但对于不同类型的变量.
如果你有一个指针你必须使用->,而如果你有一个真正的价值,你将使用..
所以举个例子
struct mystruct *pointer;
struct mystruct var;
pointer->field = ...
var.field = ...
Run Code Online (Sandbox Code Playgroud)
这根本不难.请记住,您需要一个指针->,.否则.
只有在变量是指向对象的指针时才使用 - > :
A* a = new A;
a->member();
Run Code Online (Sandbox Code Playgroud)
使用 "." 当它不是指针时:
A a;
a.member();
Run Code Online (Sandbox Code Playgroud)