Что такое конструктор?
Конструктор — это функция-член класса, которая инициализирует объекты класса. В C ++ конструктор автоматически вызывается при создании объекта (экземпляра класса). Это специальная функция-член класса.
Чем конструкторы отличаются от обычной функции-члена?
Конструктор отличается от обычных функций следующими способами:
- Конструктор имеет то же имя, что и сам класс
- Конструкторы не имеют возвращаемого типа
- Конструктор автоматически вызывается при создании объекта.
- Если мы не указываем конструктор, компилятор C ++ генерирует конструктор по умолчанию для нас (не ожидает параметров и имеет пустое тело).
Типы Конструкторов
- Конструкторы по умолчанию: Конструктор по умолчанию — это конструктор, который не принимает аргументов. У него нет параметров.
// Cpp программа для иллюстрации
// Концепция Конструкторов
#include <iostream>
using
namespace
std;
class
construct {
public
:
int
a, b;
// Конструктор по умолчанию
construct()
{
a = 10;
b = 20;
}
};
int
main()
{
// Конструктор по умолчанию вызывается автоматически
// когда объект создан
construct c;
cout <<
"a: "
<< c.a << endl
<<
"b: "
<< c.b;
return
1;
}
Выход:
a: 10 b: 20
Примечание. Даже если мы не определим конструктор явно, компилятор автоматически предоставит конструктор по умолчанию неявно.
- Параметризованные конструкторы. Можно передавать аргументы конструкторам. Как правило, эти аргументы помогают инициализировать объект при его создании. Чтобы создать параметризованный конструктор, просто добавьте к нему параметры так же, как и к любой другой функции. Когда вы определяете тело конструктора, используйте параметры для инициализации объекта.
// Программа CPP для иллюстрации
// параметризованные конструкторы
#include <iostream>
using
namespace
std;
class
Point {
private
:
int
x, y;
public
:
// Параметризованный конструктор
Point(
int
x1,
int
y1)
{
x = x1;
y = y1;
}
int
getX()
{
return
x;
}
int
getY()
{
return
y;
}
};
int
main()
{
// Конструктор вызван
Point p1(10, 15);
// Доступ к значениям, назначенным конструктором
cout <<
"p1.x = "
<< p1.getX() <<
", p1.y = "
<< p1.getY();
return
0;
}
Выход:
p1.x = 10, p1.y = 15
Когда объект объявлен в параметризованном конструкторе, начальные значения должны быть переданы в качестве аргументов функции конструктора. Обычный способ объявления объекта может не работать. Конструкторы могут быть вызваны явно или неявно.
Example e = Example(0, 50); // Explicit call Example e(0, 50); // Implicit call
Использование параметризованного конструктора:
- Он используется для инициализации различных элементов данных разных объектов с разными значениями при их создании.
- Используется для перегрузки конструкторов.
Можем ли мы иметь более одного конструктора в классе?
Да, это называется перегрузкой конструктора . - Конструктор копирования: Конструктор копирования — это функция-член, которая инициализирует объект, используя другой объект того же класса. Подробная статья о конструкторе копирования .
Всякий раз, когда мы определяем один или несколько конструкторов не по умолчанию (с параметрами) для класса, конструктор по умолчанию (без параметров) также должен быть явно определен, так как компилятор не будет предоставлять конструктор по умолчанию в этом случае. Тем не менее, в этом нет необходимости, но рекомендуется всегда определять конструктор по умолчанию.
|
Выход:
Error: point (double px, double py): expects 2 arguments, 0 provided
Статьи по Теме :
- Деструкторы в C ++
- Тест на конструкторы в C ++
- Вывод программ на C ++ | Набор 26 (Конструкторы)
- Вывод программ на C ++ | Набор 27 (конструкторы и деструкторы)
Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по обсуждаемой теме
Рекомендуемые посты:
- Конструкторы в Java
- Когда называются конструкторы?
- Наследование и конструкторы в Java
- Вывод программ на C ++ | Набор 26 (Конструкторы)
- C ++ Internals | Конструкторы по умолчанию | Комплект 1
- Класс StringTokenizer в Java с примером | Набор 1 (Конструкторы)
- Когда компилятор создает конструкторы по умолчанию и копирует конструкторы в C ++?
- C ++ Интервью вопросы на основе конструкторов / деструкторов.
- C ++ программа для печати всех четных и нечетных чисел от 1 до N
- Переверните содержимое файла и сохраните его в другом
- C программа для сортировки массива в порядке возрастания
- Минимум ячеек, которые нужно перевернуть, чтобы получить подматрицу 2 * 2 с равными элементами
- Вложенные циклы в C ++ с примерами
- Функция _Find_first () в C ++ bitset с примерами
0.00 (0%) 0 votes