Перейти к содержанию
СофтФорум - всё о компьютерах и не только

конструкторы/деструкторы с++


Рекомендуемые сообщения

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

заголовочный файл:

#include <string>class Account{  private:		  std::string fullname;		  std::string number;		  double balance;  public:		 Account();		 Account(const char* client, const char* num, double total = 0.0);		 ~Account();		 void show();		 void deposit(double cash);		 void withdraw(double cash);};

код функции членов:

#include <iostream>#include <string>#include "account.h"Account::Account(){			  std::cout << "default constructor\n";			  fullname = "unknown";			  number = "XXXXXXXX";			  balance = 0.0;}Account::Account(const char* client, const char* num, double total){				   std::cout << "constructor for " << client << "\n";				   fullname = client;				   number = num;				   balance = total;}Account::~Account(){			   std::cout << "destructor for " << fullname << "\n";}void Account::deposit(double cash){ balance += cash;}void Account::withdraw(double cash){ if (balance <= 0)	std::cout << "you can't withdraw money, you balance is negative\n"; else balance -= cash;}void Account::show(){		   using std::cout;		   using std::endl;		   cout << "Client's name: " << fullname << endl				<< "Client's number: " << number << endl				<< "Balance: " << balance << endl;}

код функции main():

#include <iostream>#include "account.h"int main(){using std::cout;using std::ios_base;cout.precision(2);cout.setf(ios_base::fixed, ios_base::floatfield);cout.setf(ios_base::showpoint);cout << "using constructor for creating new object:\n";Account person("some body", "46271003", 100000.0);person.show();person.deposit(5000.0);person.show();person.withdraw(9000.0);person.show();system("PAUSE");return 0;}
Ссылка на комментарий
Поделиться на другие сайты

Поставь { перед

using std::cout;

и } после

person.show();

и увидишь работу деструктора. Деструктор вызывается при выходе из блока, в котором был вызван конструктор.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

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

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...