Как правило, класс как тип, определенный пользователем, содержит скрытые поля и следующие функции:
конструкторы, определяющие, как инициализируются объекты класса;
набор методов доступа к скрытым элементам класса (эти методы описываются с модификатором const, указывающим, что они не должны изменять значения полей);
набор методов, изменяющих значения полей;
набор операций, позволяющих присваивать, сравнивать объекты и производить с ними другие действия, требующиеся по сути класса;
класс исключений, используемый для сообщений об ошибках с помощью генерации исключительных ситуаций.
Если существуют функции, которые работают с классом или несколькими классами через интерфейс (то есть доступ к скрытым полям им не требуется), можно описать их вне классов, чтобы не перегружать интерфейсы, а для обеспечения логической связи поместить их в общее с этими классами пространство имен, например:
namespace Staff{
class monster { /* * */};
class hero { /* * */};
void interact(hero, monster); ... }
Do'stlaringiz bilan baham: |