В последнее время я писал несколько классов; и мне было интересно, является ли это плохой практикой, плохой для производительности, нарушением инкапсуляции или есть что-то еще по своей сути плохое с фактическим определением некоторых из более мелких функций-членов внутри заголовка (я пробовал 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;
};
Итак, есть ли что-то действительно неправильное с такими встроенными функциями, или это приемлемо?
( Кроме того, я не уверен, что это больше подходит для сайта «обзора кода»)