Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Язык C

Конструкторы C++:использование аргументов по умолчанию для гибкого создания объектов

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

В то время как аргументы по умолчанию в C++ позволяют указывать значения по умолчанию для параметров функции или конструктора.

Конструктор с аргументами по умолчанию

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

Синтаксис

Вот синтаксис конструктора с аргументами по умолчанию:

class ClassName {
 public:
 ClassName(parameter_Type parameter_Name = default_Value,
 parameter_Type2 parameter_Name2 = default_Value2);
};

Пример конструктора с аргументами по умолчанию

Вот следующий пример конструктора с аргументами по умолчанию:

#include <iostream>
using namespace std;
// Function with a default argument
void printMessage(string message = "Hello, Tutorialspoint Learner") {
 cout << message << endl;
}
int main() {
 // Calling the function without an argument
 printMessage(); // Prints the default message: "Hello, World!"
 
 // Calling the function with a custom argument
 printMessage("Hi, there!"); // Prints the custom message: "Hi, there!"
 return 0;
}

Вывод

Hello, Tutorialspoint Learner
Hi, there!

Объяснение

Конструктор с несколькими аргументами по умолчанию

Конструктор с несколькими аргументами по умолчанию дает пользователю доступ к указанию значений по умолчанию для более чем одного параметра. Это обеспечивает большую гибкость и возможность передачи любой комбинации аргументов.

Пример

Вот следующий пример конструктора с несколькими аргументами по умолчанию:

#include <iostream>
using namespace std;
class Box {
 public:
 int length, width, height;
 // Constructor with multiple default arguments
 Box(int l = 5, int w = 10, int h = 2) { // Default values for length, width, and height
 length = l;
 width = w;
 height = h;
 }
 void display() {
 cout << "Length: " << length << ", Width: " << width << ", Height: " << height << endl;
 }
};
int main() {
 // Creating objects with different numbers of arguments
 Box box1; 
 Box box2(15); 
 Box box3(15, 20); 
 Box box4(15, 20, 25); 
 // Displaying the objects' values
 box1.display();
 box2.display();
 box3.display();
 box4.display();
 return 0;
}

Вывод

Length: 5, Width: 10, Height: 2
Length: 15, Width: 10, Height: 2
Length: 15, Width: 20, Height: 2
Length: 15, Width: 20, Height: 25

Объяснение

Основные особенности конструкторов с аргументами по умолчанию

Хотя он похож на обычные функции, он обеспечивает большую гибкость и удобство при создании объектов.

Ниже мы обсудим все его ключевые особенности.

1. Значения параметров по умолчанию и гибкость при создании объектов

Здесь конструктор может иметь значения по умолчанию для одного или нескольких параметров, которые можно использовать, когда вызывающая сторона не предоставляет аргументов, и допускает несколько способов создания объекта.

2. Как избежать многократной перегрузки конструктора

Возможно, вам придется загружать конструктор для каждой комбинации аргументов, что сделает код более громоздким, но с аргументами по умолчанию конструктор можно написать один раз, и он будет автоматически обрабатывать различные случаи.

3. Порядок аргументов по умолчанию

В случае нескольких параметров значений по умолчанию вы не можете пропустить аргументы по умолчанию в середине, если начнете предоставлять значения по умолчанию справа.

Синтаксис

Box(int l = 1, int w); // Invalid: 'w' has no default, but 'l' does.

4. Аргументы по умолчанию можно использовать с константными членами

Если ваш класс имеет константные члены, то в конструкторе можно указать аргументы по умолчанию, чтобы упростить инициализацию.

Синтаксис

class Box {
 public:
 const int length, width;
 Box(int l = 5, int w = 10) : length(l), width(w) {}
};

Этот конструктор использует аргументы по умолчанию (длина =5 и ширина =10) для инициализации константных членов.


Язык C

  1. Обработка сигналов С++
  2. С++ рекурсия
  3. C while и do...while Loop
  4. C - Обработка ошибок
  5. Модификаторы доступа C#
  6. С# с использованием
  7. С# Массивы
  8. Веб-программирование на С++
  9. С# — Структура программы
  10. Перегрузка функций C++