Code: Alles auswählen
public:
void everyOneShouldBeAbleToCallMe(void);
protected:
void noOneButFriendsAndSubclassesShouldBeAbleToCallMe(void);
private:
void noOneButFriendsShouldBeAbleToCallMe(void);
protected:
void noOneButSubclassesShouldBeAbleToCallMe(void);
private:
void noOneExceptTheClassItselfShouldBeAbleToCallMe(void);
friend class IshouldOnlyBeAbleToCallTheTop3ButNotTheBottom2Methods;
friend void Me::too(void);
Wie implementiere ich das am besten?
Ich habe bereits an so etwas gedacht:
Code: Alles auswählen
class MyClass
{
private:
friend class IAmAFriend;
int iAmAccessibleToTheFriend;
class Privates
{
private:
friend class MyClass;
int iAmStillPerfectlyPrivateToMyClassAndNotAccessibleByItsFriends;
} privates;
};
Code: Alles auswählen
class MyClass
{
protected:
friend class IAmAFriend;
int iAmAccessibleToTheFriend;
class Protecteds
{
protected:
friend class MyClass;
int iAmStillPerfectlyPrivateToMyClassAndNotAccessibleByItsFriends; // still private to MyClass and not accessible to its subclasses, as friendship is not inherited
} protecteds;
};
Gibts es da bereits igendwelche Designpattern, die das umsetzen oder hat wer eine Idee, wie ich das auch für proecteds sauber hin bekomme?