Курсовая работа: Розробка власного класу STRING

Об'єкт класу Account, ініціалізуємий конструктором, можна об’явити в такий спосіб:

Account newAcct ("Mikey Matz", 0);

Якщо ж є багато рахунків, для яких початковий баланс дорівнює 0, то корисно мати конструктор, що задає тільки ім'я власника й автоматично ініцілізує _balance нулем. Один зі способів зробити це - надати конструктор виду:

Account (const char *name);

Інший спосіб - включити в конструктор із двома параметрами значення за замовчуванням, рівне нулю:

Account (const char *name, double open_balance = 0.0);

Обоє конструктора володіють необхідної користувачеві функціональністю, тому обоє рішення прийнятні. Ми воліємо використати аргумент за замовчуванням, оскільки в такій ситуації загальне число конструкторів класу скорочується.

Потрібно чи підтримувати також завдання одного лише початкового балансу без вказівки імені клієнта? У цьому випадку специфікація класу явно забороняє це. Наш конструктор із двома параметрами, з яких другий має значення за замовчуванням, надає повний інтерфейс для задання початкових значень тих членів класу Account, які можуть бути ініціалізовані користувачем:

class Account {

public:

// конструктор за замовчуванням...

Account ();

// імена параметрів в оголошенні вказувати необов'язково

Account (const char*, double=0.0);

const char* name () { return name; }

// ...

private:

// ...

};


Нижче наведені два приклади правильного визначення об'єкта класу Account, де конструкторові передається один або два аргументи:

int main ()

{

// правильно: в обох випадках викликається конструктор

// с двома параметрами

Account acct ("Ethan Stern");

Account *pact = new Account ("Michael Lieberman", 5000);

if (strcmp (acct. name (), pact->name ()))

// ...

}

К-во Просмотров: 431
Бесплатно скачать Курсовая работа: Розробка власного класу STRING