В C++ есть такая специальная функция. Это функция с тем же именем, что и имя класса в классе, и не имеет возвращаемого значения. Пока мы определяем объект класса, система автоматически вызывает его для специальной инициализации. В большинстве случаев, поскольку мы не определяем конструктор , система по умолчанию генерирует форму и скрытый конструктор. Тело функции этого конструктора пусто и, следовательно, не имеет никакой функции.
Далее мы научим вас определять собственный конструктор. Пользователь должен самостоятельно определить хотя бы один конструктор. Система больше не будет генерировать его автоматически, а выберет наиболее подходящий для вызова на основе определяемого пользователем конструктора. .
Например, по-прежнему используя класс Student, мы добавляем конструктор с параметрами по умолчанию. Код выглядит следующим образом:
#include<iostream>#include<Cstring>usingnamespacestd;classStudent{private:intnum;//номер студента charname[100];//name intscore;//score public:Student(intn,char*str,ints);intprint( );intSet(intn,char*str,ints);};Student::Student(intn,char*str,ints){nu m=n;strcpy(name,str);score=s;cout<<Constructor<<endl;}intStudent::print(){cout<<num<<<name<<<<score;return0;}intSt udent::Set(intn,char*str,ints){num=n;strcpy(name,str);score=s;}intmain(){StudentA(100,dotcpp,11);A.print();return0 ;}
То есть конструктор можно вызвать одновременно с его определением для реализации функции инициализации. Операция выглядит следующим образом:
Следует отметить, что поскольку мы определили в классе конструктор с параметрами по умолчанию, система не будет его автоматически генерировать. На данный момент нам также необходимо передать три начальных значения по умолчанию при определении объекта, потому что конструктор. Возможна перегрузка, система найдет наиболее подходящую функцию, но если она не определена как конструктор с параметрами по умолчанию, будет сообщено об ошибке. Поэкспериментируйте самостоятельно!