Fondamentalmente, ho un codice che assomiglia a questo. È un typedef
e un insieme di metodi che ruotano attorno a quel typedef
.
class foo {
// Foo stuff...
// Registration Stuff
private:
typedef std::map<std::string, std::string> MTRegistrationParams;
void DispatchRegistrationMessage (MTRegistrationParams const &, std::string destination_id);
static std::string BuildRegistrationMessage (MTRegistrationParams const &, std::string message_id); // Only called by DispatchRegistrationMessage
// more Foo stuff...
};
Penso che potrebbe essere più chiaro fare solo una piccola mini-classe, per aiutare a separare logicamente questi metodi dalla struttura di Foo.
class foo {
// Foo stuff...
// Registration Stuff
private:
struct MTRegistrationParams : public std::map<std::string, std::string> {
void DispatchRegistrationmessage (foo &, std::string const & destination_id);
private:
std::string BuildRegistrationMessage (std::string const & message_id);
};
// more Foo stuff...
};
Il fatto è che ... di solito non creo classi derivate a meno che non si tratti di ereditare metodi e derivare da un contenitore standard sembra DAVVERO strano.
Sono eccessivamente preoccupato o deriva da contenitori standard solo per decorarli con metodi veramente cattivi?