为什么C++;让你把-&燃气轮机&引用;指针和“指针”的符号&引用;其他一切的象征? 在C++中,众所周知,当试图访问对象中的数据成员或函数时,将对象名称放在一个点之后,然后将要访问的任何对象。但如果类型是指针,则使用箭头而不是点,箭头为“->”。我知道这一点,但我想知道为什么C++的创造者会这样做。
例如:为什么C++;让你把-&燃气轮机&引用;指针和“指针”的符号&引用;其他一切的象征? 在C++中,众所周知,当试图访问对象中的数据成员或函数时,将对象名称放在一个点之后,然后将要访问的任何对象。但如果类型是指针,则使用箭头而不是点,箭头为“->”。我知道这一点,但我想知道为什么C++的创造者会这样做。,c++,pointers,C++,Pointers,例如: random_object o; o.random_field; 但是,对于指针: random_object* o = new random_object(); o->random_field; 操作符是访问给定(引用)对象实例的成员的方式。它访问从对象开始的给定偏移量处的成员 当您有一个指向对象的指针时,->操作符是一个更简洁的速记。它为您解除对指针的引用,然后在一次操作中应用偏移量。否则,您将不得不手动取消对指针的引用 换句话说,o->random\u字段与(*o)完全相
random_object o;
o.random_field;
但是,对于指针:
random_object* o = new random_object();
o->random_field;
操作符是访问给定(引用)对象实例的成员的方式。它访问从对象开始的给定偏移量处的成员
当您有一个指向对象的指针时,->
操作符是一个更简洁的速记。它为您解除对指针的引用,然后在一次操作中应用偏移量。否则,您将不得不手动取消对指针的引用
换句话说,
o->random\u字段
与(*o)完全相同代码>当o
是一个对象指针时。因为C就是这样做的。你不必这样做,你也可以写(*o)。random\u field
,只是不太方便如果是因为C这样做,为什么C这样做?看:你不仅可以交替写(*o)。random\u field
,你还可以写o[0]。random\u field
甚至0[o]。random\u field
。。。这是来自C语言。C语言受B语言的影响,但现在很难找到关于B语言的更多信息。