Author: Mathieu Pagé
Date: 10:04:29 01/05/06
Hi, I want to push OO to it's limit in order to get cleaner code. Here is what I
want to do :
class CSquare
{
private:
unsigned int m_uiSquareIndex;
public :
// the next 3 functions allow CSquare to be used as an unsigned int in
// arithmetic operations.
inline CSquare(unsigned int);
inline CSquare operator=(unsigned int);
inline operator unsigned int();
// The next 2 functions are why i'd like to use OOP to make the
manipulation
// of squares clearer.
unsigned int GetColumn()
{
return m_uiSquareIndex % 8;
};
unsigned int GetRow()
{
return m_uiSquareIndex / 8;
};
};
This way I can use CSquare like this :
CSquare csq(A1)
csq += 8; // One row higher. csq is now equat to A2.
csq.GetRow(); // Will return 1 (0 based index)
csq.GetColumn(); // will return 0
I think that with basic compiler optimisations like inlining this code will
bring no overhead in my engine. I already asked some friends about it and they
seem to think like me, but are not sure.
Since it's CC related and there is some good programmers monitoring this board I
though I would ask here.
What is your opinion about this?
Mathieu Pagé
This page took 0.01 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.