We have macros that create the get and set functions for you. Here's an example of one of them.

Code:
// Purpose:
// HAS_A is used for quickly creating a private class member variable with corresponding
// public Get and Set functions.
//
// Usage:
// HAS_A( type , name )
// Example: HAS_A(int, Count)
// The above example expands to the following code:
// 
//	private:																					
//		int m_Count;																
//	public:																					
//		const int &  GetCount () const { return m_Count; }	 
//		void SetCount(const int & inValue) { m_Count = (( int &)inValue); } 
//
// Notes:
// 1) HAS_A can change the scope of members and methods declared after it.  In the following
//    example the declaration of X is public, not private.
//
//    private:
//    HAS_A(int, Count)
//		int X;
//    
//		For this reason HAS_A is usually used at the end of a class.
//
// 2) HAS_A is case sensitive.  The following example creates Getcount and Setcount methods,
//    not GetCount and SetCount.
//
//    HAS_A(int, count)
#define HAS_A( inType, inName )\
private:																					\
inType m_ ## inName;																   \
public:																					\
virtual const inType &  inName () const { return m_ ## inName; }	   \
virtual void inName(const inType & inValue) { m_ ## inName = (( inType &)inValue); }