<分区>
Possible Duplicate:
Why does C have a distinction between -> and . ?
程序员在访问对象成员时必须区分 .
和 ->
的真正原因是什么?
void foo( Point &p ) {
p.x ;
p->y; // syntax error
}
void foo( Point *p ) {
p.x ; // syntax error
p->y;
}
我的意思是,不管怎样,它们都引用一个对象,p。
为什么我每次都要检查 p 是什么?编译器不能理解吗?
为什么他们不允许它同时接受
.
语法?这也适用于堆栈对象。
如果是由于 C 传统,
- 为什么他们不允许同时使用
.
和->
访问器?
15 年来,我一直谦虚地认为编译器错误是我的错!