В нашем проекте мы заказываем участников не по доступу, а по использованию. И под этим я подразумеваю, мы заказываем участников, поскольку они используются. Если открытый член использует закрытый член в том же классе, этот закрытый член обычно находится где-то перед открытым членом, как в следующем (упрощенном) примере:
class Foo
{
private:
int bar;
public:
int GetBar() const
{
return bar;
}
};
Здесь член bar ставится перед элементом GetBar () , поскольку первый используется последним. Это может привести к нескольким разделам доступа, как в следующем примере:
class Foo
{
public:
typedef int bar_type;
private:
bar_type bar;
public:
bar_type GetBar() const
{
return bar;
}
};
Элемент bar_type используется элементом bar , видите?
Почему это? Не знаю, казалось более естественным, что если вы встретите члена где-то в реализации, и вам нужно больше информации об этом (и IntelliSense снова облажался), вы сможете найти его где-то выше, где вы работаете.