我想要自己構建一個2D矢量類。這個[]運算符是如何重載的?
當我找別人來實現示例代碼,我發現這一點:
class Vector2D {
public:
// components
double x, y;
Vector2D() : x(0.0), y(0.0) { }
// returns reference to the specified component (0-based indexing: x, y)
inline double& operator[] (const int& index) {
return (&x)[ index ];
}
}
是如何[]
運營商超載?我如何理解(&x)[index]
?
你發現垃圾。將您的學習材料更改爲[合理](https://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list/388282)。 – nwp
我相信這個例子是未定義的行爲。它依賴'y'在內存中的'x'之後,我不確定這是否有保證。 –
'const int&index'是過早的悲觀主義。它增加了一個間接層,沒有任何收益。 –