When this option is not selected:
For example, consider the following file, clock.h:
#ifndef CLOCK_H
#define CLOCK_H
#include <stdio.h>
class clock
{
int second;
int minute;
public:
clock();
void incTime(void);
protected:
int present_second(void) {return second;}
int present_minute(void) {return minute;}
};
#endif
The file clock.cpp contains the following code:
clock.cpp
#include "clock.h"
clock::clock() : minute(0),second(0)
{
}
void clock::incTime(void)
{
if (second == 59)
{
second = 0;
minute ++;
}
else
{
second++;
}
cout << minute << ":" << second << endl;
}
If you reverse engineer these files with the Reflect Data Members check box cleared (the equivalent of setting the <lang>_ReverseEngineering::ImplementationTrait::ReflectDataMembers property to None) and the input option Only from file list on the Input tab of the Reverse Engineering Advanced Options window, the results are as shown in the following figure.

The accessors and mutators are shown as public in the browser, but the actual visibility of the attributes is private.
If you select the Reflect Data Members check box and repeat the reverse engineering process, the attributes are private and the accessors and mutators are not generated, as shown in the following figure.

In this case, legacy code that already has these operations uses them instead of the IBM® Rational® Rhapsody® default ones.