Single Responsibility in C++ - Should I implement it using friend classes or more accessors?
<p>I wish to follow the Single Responsibility principle in C++.  However, as I break up classes, it seems that in order for classes to "see" each other, I have the following choices:</p>

<ol>
<li>Add many more accessors for each class</li>
<li>Make classes friends of each other</li>
<li>Improve the design (maybe the fact that I would have to do 1 or 2 indicates a flaw in my design)</li>
</ol>

<p>The friend vs. accessors issue has probably been discussed before, but I did not know if one was more advantageous with regard to implementing Single Responsibility.  </p>
