c++. Класс. Как называется конструкция foo::foo и зачем она нужна?

Я новичок в с++, и приходится писать на этом непонятном языке. Нам нужно создать класс, и в методе main выполнить его методы. Когда я создал класс, он не определился в main(), по этому решил попробовать стандартный код класса в редакторе. Но тут vs code нам предлагает конструкцию foo::foo. Что такое foo::foo, и зачем она нужна ?

class foo
{
private:
    /* data */
public:
    foo(/* args */);
    ~foo();
};

foo::foo(/* args */)
{
}

foo::~foo()
{
}

Ответы (1 шт):

Автор решения: Aziz Umarov

Конструктор — это особый тип метода класса, который автоматически вызывается при создании объекта этого же класса. Конструкторы обычно используются для инициализации переменных-членов класса значениями, которые предоставлены по умолчанию/пользователем, или для выполнения любых шагов настройки, необходимых для используемого класса

В отличие от обычных методов, конструкторы имеют определенные правила их именования:

  • конструкторы всегда должны иметь то же имя, что и класс (учитываются верхний и нижний регистры);

  • конструкторы не имеют типа возврата (даже void).

Обратите внимание, конструкторы предназначены только для выполнения инициализации. Не следует пытаться вызывать конструктор для повторной инициализации существующего объекта. Хотя это может скомпилироваться без ошибок, результаты могут получиться неожиданные (компилятор создаст временный объект, а затем удалит его).

→ Ссылка