Я предполагаю, что вы довольно плохо знакомы с C ++ и, возможно, даже с объектно-ориентированным программированием. Итак, во-первых, я надеюсь, вы понимаете, что такое конструктор класса.
Большинство типов будет иметь какой-либо конструктор, используемый для инициализации себя. Даже когда речь идет о примитивах int
или других типах переменных, все может быть инициализировано². Поэтому при создании классов вас попросят предоставить инициализатор, который называется constructor . Конструкторы могут иметь параметры, которые могут быть обязательными или нет. Они также могут быть перегружены, что означает, что класс может иметь много конструкторов.
Поскольку конструкторы являются инициализаторами, их вызов неявный: конструктор класса будет вызываться каждый раз, когда вы создаете объект этого класса, будь то с помощью ключевого слова new
или путем объявления его в стеке:
CMyObject obj;
Теперь они должны быть объявлены внутри вашего класса. В конце концов, это методы ... как же его назвать? Например, Python использует другой подход и использует ключевое слово __init__
; Дизайнер C ++ решил, что это будет имя класса.
Это имеет смысл, поскольку, в конце концов, наличие метода-члена с именем класса может вызвать конфликты имен (неоднозначность) по всей системе. (Несмотря на то, что эта серия статей посвящена C #, в нем разъясняется, почему использование имени для члена определенной области видимости с таким же именем является неправильным)
² Но иногда они не для того, чтобы уменьшить стоимость времени выполнения.