Конструктор — это специальная функция-член в C++, которая автоматически вызывается при создании объекта класса. Он используется для инициализации состояния объекта, например присвоения начальных значений свойствам. Конструктор имеет то же имя, что и класс, и не имеет типа возвращаемого значения.
C++ поддерживает несколько типов конструкторов для удовлетворения различных потребностей инициализации:
конструктор по умолчаниюэто самый простой Конструктор,не принимает никаких параметров。Обычно его используют дляобъект Установить значения по умолчанию для свойств,Или выполнить простые операции инициализации.
class Person {
public:
string name;
int age;
Person() { // конструктор по умолчанию
name = "Unknown";
age = 0;
}
};
int main() {
Person p1; // создавать Person объект
cout << p1.name << ", " << p1.age << endl; // Выход: Неизвестно, 0
return 0;
}
Конструктор с параметрами Позволяет передавать параметры для инициализации состояния Объект может быть любым допустимым. C++ Типы данных, включая базовые типы, объекты пользовательских классов и указатели.
class Car {
public:
string brand;
string model;
int year;
Car(string b, string m, int y) { // Конструктор с параметрами
brand = b;
model = m;
year = y;
}
};
int main() {
Car car1("Ford", "Mustang", 1967); // создавать Car объект и передать параметры
cout << car1.brand << " " << car1.model << " " << car1.year << endl; // Выход: Форд Mustang 1967
return 0;
}
конструктор копирования Используется для создания нового объекта из другого существующего Объект обычно используется для значения атрибута копирования другого объекта.,не делясь оригиналомобъектданные。
class Person {
public:
string name;
int age;
Person(const Person& other) { // конструктор копирования
name = other.name;
age = other.age;
}
};
int main() {
Person p1("Alice", 30); // создавать Person объект
Person p2(p1); // конструктор копированиясоздавать p2
cout << p2.name << ", " << p2.age << endl; // Выход: Алиса, 30
return 0;
}
переместить конструктор Используется для передачи ресурсов из временного объекта, который скоро будет уничтожен, в новый объект.его обычно используют для Избегайте ненужных ресурсовкопировать,и улучшить производительность。
class Person {
public:
string name;
int age;
Person(Person&& other) { // переместить конструктор
name = std::move(other.name);
age = other.age;
// Воля other ресурсы, переданные в this
}
};
int main() {
Person p1("Bob", 25); // создавать Person объект
Person p2(std::move(p1)); // переместить конструкторсоздавать p2
cout << p2.name << ", " << p2.age << endl; // Выход: Боб, 25
cout << p1.name << ", " << p1.age << endl; // Выход:, 0 (p1 ресурсы перенесены)
return 0;
}
Доступом к конструкторам можно управлять с помощью модификаторов контроля доступа, например. public
、private
и protected
。
public
:Конструктор Можно вызвать где угодно за пределами класса。private
:Конструктор Можно вызвать только внутри класса。protected
:Конструктор Может быть вызван внутри класса или его подклассов.。Конструктор C++ важные аспектыобъектмеханизм программирования,для инициализациииуправлятьобъектстатус。Понимая различные типы Конструктори его использование,ты можешьсоздавать Прочный и ремонтопригодный C++ код.
Для того, чтобы облегчить друзьям на других устройствах и платформах просмотр предыдущих статей:
Поиск общедоступной учетной записи WeChat:Let us Coding
,сосредоточиться Вы можете получить последнюю статью после
Если вы нашли это полезным после прочтения, пожалуйста, поставьте лайк, соберите и подпишитесь