You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Зачем конструкторам нужны аргументы<br />
Возможность добавления аргументов к конструктору не требует особой, простите за<br />
каламбур, аргументации, но я все же приведу несколько аргументов в пользу применения<br />
аргументов. Во-первых, их использование в конструкторе достаточно удобно. Было<br />
бы несколько непоследовательно требовать от программиста сначапа конструировать<br />
объект, а затем вызывать инициализирующую функцию с тем, чтобы она проводила<br />
инициализацию, специфичную для данного объекта. Конструктор, поддерживающий<br />
аргументы, похож на магазин при автозаправке: он предоставляет полный сервис.<br />
Другая, более важная причина использования аргументов в конструкторе состоит<br />
в том, что иногда это единственный способ создать объект с необходимыми начальными<br />
значениями. Вспомните, что работа конструктора заключается в создании корректного<br />
(в смысле требований данного класса) объекта. Если какой-то созданный по<br />
умолчанию объект не отвечает требованиям программы, значит, конструктор не выполняет<br />
свою работу.<br />
Например, банковский счет без номера не является приемлемым (C++ все равно,<br />
каков номер счета, но это почему-то волнует банк). Можно создать объект BankAccount<br />
без номера, а затем потребовать от приложения вызвать некоторую функциючлен<br />
для инициализации номера счета перед использованием. Однако это нарушает<br />
наши правила, поскольку при таком подходе класс вынужден полагаться на то, что<br />
эти действия будут выполнены внешним приложением.<br />
Как использовать конструктор с аргументами<br />
Идея использования аргументов проста. Как известно, функции-члены могут иметь<br />
аргументы, поэтому конструктор, будучи функцией-членом, тоже может иметь аргументы.<br />
При этом нельзя забывать, что вы вызываете конструктор не как нормальную<br />
функцию и передать ему аргу мент<br />
можно только в момент создания объекта. Так,<br />
приведенная ниже программа создает объект s класса student, вызывая конструктор<br />
Student (char* ). Объект s уничтожается в момент возврата из функции main ().<br />
#include <br />
#include <br />
class Student<br />
{<br />
public:<br />
Student(char "pName)<br />
{<br />
cout