To ensure that only a single thread accesses a data member of an object, declare that member private. Next, add the necessary synchronization operations (e.g., a call to EnterCriticalSection()) in the “getter” and “setter” member functions before actually accessing that member. Finally release the lock (e.g., by calling LeaveCriticalSection()) before the function returns:
class Person{ string name;public: void setName(const string& newname) { EnterCriticalSection(); name=newname; LeaveCriticalSection } void getName(string& firstname) const { EnterCriticalSection(); firstname=name; LeaveCriticalSection }};