В последнее время я писал несколько классов; и мне было интересно, плохо ли это из-за плохой практики, плохой производительности, разрывает инкапсуляцию или есть ли что-то еще по своей сути плохое с фактическим определением некоторых из меньших функций-членов внутри заголовка (я действительно пытался Google!). Вот пример, который у меня есть для заголовка, который я написал много:
class Scheduler {
public:
typedef std::list<BSubsystem*> SubsystemList;
// Make sure the pointer to entityManager is zero on init
// so that we can check if one has been attached in Tick()
Scheduler() : entityManager(0) { }
// Attaches a manager to the scheduler - used by Tick()
void AttachEntityManager( EntityManager &em )
{ entityManager = &em; }
// Detaches the entityManager from a scheduler.
void DetachEntityManager()
{ entityManager = 0; }
// Adds a subsystem to the scheduler; executed on Tick()
void AddSubsystem( BSubsystem* s )
{ subsystemList.push_back(s); }
// Removes the subsystem of a type given
void RemoveSubsystem( const SubsystemTypeID& );
// Executes all subsystems
void Tick();
// Destroys subsystems that are in subsystemList
virtual ~Scheduler();
private:
// Holds a list of all subsystems
SubsystemList subsystemList;
// Holds the entity manager (if attached)
EntityManager *entityManager;
};
Итак, есть ли что-то действительно неправильное с такими функциями вложения, или это приемлемо?
(Кроме того, я не уверен, что это больше подходит для сайта "обзор кода" )