A operator [] (unsigned int, unsigned int, unsigned int, unsigned int);
wtf? what language is this!?!? is this D or something?
also since you have 8 directions you should consider a 0,0,0,0 point and int,int,int,int
indexing operators are not really linked list cool anyway
also why not declaring
A operator[]() const;
A& operator[]();