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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2010, 22:48   #1
psihadelic
Пользователь
 
Регистрация: 17.11.2009
Сообщений: 26
Восклицание Некоректная работа конструкторов, в чем проблема?

Здравствуйте.

Прошу помочь решить один вопрос. Знаю, что для того, чтобы мне помочь нужно будет скачать файл и запустить его, но я очень прошу сделать это, так как мне это срочно нужно.

В общем пишу программу (курсовая), там куча всяких классов, конструкторов, есть ввод вывод и т.д.
В общем когда я создаю объект класса, вызывается конструтор, но он не работает корректно. По идее он должен выводить строку (текст) и потом просить ввести текст, но этого не происходит, программа глючит, если ввести несколько символов (нажимая ентер), то она быстренько на монитор что-то выкинет и уже потом продолжит выполнение.

Вот и думаю, что же я не так сделал, что конструкторы не работают.

В приложении вложу программу, прошу посмотреть её.
Вложения
Тип файла: rar KursovayaV2.rar (640.3 Кб, 11 просмотров)
psihadelic вне форума Ответить с цитированием
Старый 20.05.2010, 23:02   #2
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Во-первых, раз проблемы с каким-то одним конструктором, то почему бы не выложить его код вместе с интерфейсом проблемного класса прямо сюда?
Во-вторых, мельком глянул у вас, заглянул в fun.h и не понял - почему, у вас в заголовочном файле определения функций?? Вот уж где плохая идея!
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 21.05.2010, 15:46   #3
psihadelic
Пользователь
 
Регистрация: 17.11.2009
Сообщений: 26
По умолчанию

Код не могу вставить, потому, что проблема не с одним классом, а со всеми.
Чем плохо то, что у меня функции в .h файле?
Как их ещё можно подключить?
psihadelic вне форума Ответить с цитированием
Старый 21.05.2010, 17:30   #4
liljon
Форумчанин
 
Регистрация: 03.01.2010
Сообщений: 229
По умолчанию

объясняю. Это вы прекрасно организовали ваши классы. Программа не глючит, а рботает нормально.

и так. Поставил точку останова в этом месте
Код:
		case 1:
			{
				worker  obj; //здесь точка останова
				//metod obj;
				//obj.AddWorker();
				cout<<"Add AddWorker";
			}
Проваливалюсь в функцию-конструктор и смотрю дейсвтительно, дальше просто дебагер не переходит по строчкам.
Тогда зметил что в классе worker объвлен класс position и аж 5 project'ов
Код:
	position PositionOccupied;
	project ProjectsWorker[5];
Теперь смотрим, что написано в конструкторе этих классов

Код:
position::position()
{
	cin >> TitlePosition;
	cin >> EmploymentDuties;
	cin >> NumberWorkingHours;
	cin >> Wage;
};

project::project()
{
	cin >> TitleProject;
	cin >> ProjectDuration;
	cin >> Hours;
	cin >> ProjectCosts;
	cin >> CustomerProject;
};
Это означает, что необходимо ввести 29 значений с клавиатуры после чего продолжится выполнение функции конструктора worker.
Понятно?
подпись
liljon вне форума Ответить с цитированием
Старый 22.05.2010, 11:33   #5
psihadelic
Пользователь
 
Регистрация: 17.11.2009
Сообщений: 26
По умолчанию

Цитата:
Сообщение от liljon Посмотреть сообщение
объясняю. Это вы прекрасно организовали ваши классы. Программа не глючит, а рботает нормально.

и так. Поставил точку останова в этом месте
Код:
		case 1:
			{
				worker  obj; //здесь точка останова
				//metod obj;
				//obj.AddWorker();
				cout<<"Add AddWorker";
			}
Проваливалюсь в функцию-конструктор и смотрю дейсвтительно, дальше просто дебагер не переходит по строчкам.
Тогда зметил что в классе worker объвлен класс position и аж 5 project'ов
Код:
	position PositionOccupied;
	project ProjectsWorker[5];
Теперь смотрим, что написано в конструкторе этих классов

Код:
position::position()
{
	cin >> TitlePosition;
	cin >> EmploymentDuties;
	cin >> NumberWorkingHours;
	cin >> Wage;
};

project::project()
{
	cin >> TitleProject;
	cin >> ProjectDuration;
	cin >> Hours;
	cin >> ProjectCosts;
	cin >> CustomerProject;
};
Это означает, что необходимо ввести 29 значений с клавиатуры после чего продолжится выполнение функции конструктора worker.
Понятно?
Да нет, не очень. Почему именно 29 значений? Что я с классами не так сделал? У меня они контейнерные по заданию.
psihadelic вне форума Ответить с цитированием
Старый 22.05.2010, 11:46   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Почему именно 29 значений?
Давай считать. У тебя project ProjectsWorker[5]; - 5 элементов массива
При создании каждого элемента будет вызываться твоя:
Код:
project::project()
{
	cin >> TitleProject;
	cin >> ProjectDuration;
	cin >> Hours;
	cin >> ProjectCosts;
	cin >> CustomerProject;
};
Сдесь ты пять раз вводишь данные итого 5*5=25 - раз тебе придется жмакать клавишу Энтер
Плюс
Код:
position::position()
{
	cin >> TitlePosition;
	cin >> EmploymentDuties;
	cin >> NumberWorkingHours;
	cin >> Wage;
};
4 ввода итого 29 раз твой Энтер прогнется под твой палец.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.05.2010, 18:17   #7
psihadelic
Пользователь
 
Регистрация: 17.11.2009
Сообщений: 26
По умолчанию

А почему это будет создаваться 5 объектов??? Их в конструкторе вообще нет. Или они создаются при создании объекта класса worker ?
psihadelic вне форума Ответить с цитированием
Старый 22.05.2010, 23:49   #8
liljon
Форумчанин
 
Регистрация: 03.01.2010
Сообщений: 229
По умолчанию

Цитата:
Сообщение от psihadelic Посмотреть сообщение
Или они создаются при создании объекта класса worker ?
Именно так
подпись
liljon вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Применение конструкторов [Java] [CODER] Помощь студентам 2 28.03.2010 21:29
В чем проблема? Starleychik Операционные системы общие вопросы 4 02.09.2009 13:06
в чем проблема??? N@Z Паскаль, Turbo Pascal, PascalABC.NET 1 05.05.2009 23:07
В чем проблема? Sirazh Microsoft Office Excel 4 25.09.2008 21:32
Некоректная работа SQL- запроса Tan БД в Delphi 4 05.04.2008 20:40