我知道问为什么?对这个网站来说是个坏问题,因为我们不知道。但是我的意思是,它可以代替询问,有哪些可能的原因?
我发现自己自然而然地写作,
foo->[i];
并惊讶地发现它不起作用。我的意思是写:
(*foo)[i];
我相信大多数人已经明白我的意思,但要清楚,我想
bar.subscript(i);
foo->subscript(i);
将类似于
bar.operator[](i);
foo->operator[](i);
但情况似乎并非如此。为什么?我确定我一定是以错误的方式看待某些事情,但我不知道是什么。我知道的理论很少,所以外行的解释将不胜感激。
如果我的类比没有明显的错误,那么语言的设计者可能将操作员排除在外的一些可能原因是什么?是模棱两可的吗?(如果是这样,那么误认为是什么?)
根据@chris 的建议,我想在编辑中加入一些评论,因为我并没有像我应该做的那样清楚:
OP 正在提议 operator->[],这是两者的结合。
- 克里斯
他在问为什么他想要的东西不存在,而不是为什么他试图编写的代码不起作用。
——马修“齿轮”奥兰多