Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.10.2012, 16:25   #1
Donat_Oshchepkov
Пользователь
 
Регистрация: 26.09.2012
Сообщений: 17
По умолчанию Конструктор с параметрами

Почему не выводит сообщения о вызове деструктора с параметрами, деструктора копирования?

Код:
#include "stdafx.h"
#include <clocale>
#include <Windows.h> 
#include <iostream>
#include <conio.h>

using namespace std;

class person
{
	private:
		int age;
		char *name;
		char *pol;

	public:

		person(char *x, char *y, int z);
		person(const person&);
		person();
		~person();

		void scan();
		void print();
};

person *a;

person:: person(char *x, char *y, int z)
{
	strcpy(name, x);
	strcpy(pol, y);
	z = age;
    cout<<"Вызван конструктор с параметрами\n";
}

person:: person(const person&copy)
{
	name = copy.name;
	pol = copy.pol;
	age = copy.age;

	cout<<"Вызван конструктор копирования\n";
}

person:: person()
{
	a = NULL;
	age = 0;
	name = new char[15]; 
	pol = new char[7];

	cout<<"Вызван конструктор\n";
}

person::~person()
{
	age = 0;

	delete name;
	delete pol;

	cout<<"Вызван деструктор\n";
}

void person::scan()
{
	cout<<"Введите имя: ";
	cin>>name;

	cout<<"Введите пол: ";
	cin>>pol;

	cout<<"Введите возраст: ";
	cin>>age;
}

void person::print()
{
	cout<<"Имя: "<<name<<"\n";
	cout<<"Пол: "<<pol<<"\n";
	cout<<"Возраст: "<<age<<"\n";
};


int _tmain(int argc, _TCHAR* argv[])
{
	SetConsoleCP(1251);
	SetConsoleOutputCP(1251);

	int quantity = 0;

	cout<<"Введите количество персон: ";
	cin>>quantity;
	
	a = new person[quantity]();

	for (int i = 0; i < quantity; i++)
	{
		cout<<"Введите данные персоны № "<<i + 1<<"\n";
		a[i].scan();
	}

	for (int i = 0; i < quantity; i++)
	{
		cout<<"Персона № "<<i + 1<<"\n";
		a[i].print();
	}

	system("pause");

	return 0;
}

Последний раз редактировалось ACE Valery; 31.10.2012 в 16:42.
Donat_Oshchepkov вне форума Ответить с цитированием
Старый 31.10.2012, 16:30   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

0) Оформляйте код тегом CODE, пожалуйста.

Цитата:
деструктора с параметрами, деструктора копирования?
???
Если речь о конструкторах, то в каком месте, по-Вашему, они должны бы вызываться?
Abstraction вне форума Ответить с цитированием
Старый 31.10.2012, 17:07   #3
Donat_Oshchepkov
Пользователь
 
Регистрация: 26.09.2012
Сообщений: 17
По умолчанию

int _tmain(int argc, _TCHAR* argv[]) - здесь?

не знаю как их вызвать
Donat_Oshchepkov вне форума Ответить с цитированием
Старый 31.10.2012, 17:11   #4
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Тогда ответ прост как три копейки: сообщения не выводятся, потому что соответствующие конструкторы не вызываются.
Abstraction вне форума Ответить с цитированием
Старый 31.10.2012, 17:15   #5
Donat_Oshchepkov
Пользователь
 
Регистрация: 26.09.2012
Сообщений: 17
По умолчанию

Не могли бы вы вызвать их в моей программе?
Donat_Oshchepkov вне форума Ответить с цитированием
Старый 31.10.2012, 17:19   #6
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Код:
person p("xxx","yyy",42);
person q(p);
Если программа не упадёт на первом вызове по милости кривой реализации конструктора с параметрами, то вот так.
Abstraction вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическое выделение памяти, конструктор с параметрами и vector MuradS60 Общие вопросы C/C++ 20 03.04.2012 00:49
конструктор с параметрами vanek1 Помощь студентам 1 12.05.2011 23:00
не могу создать конструктор с параметрами по умолчанию wwe2012 Общие вопросы C/C++ 3 30.03.2011 17:20
Как создать конструктор с параметрами по умолчанию wwe2012 Общие вопросы C/C++ 7 29.03.2011 18:22