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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.04.2009, 16:16   #1
(*_*)
Пользователь
 
Регистрация: 17.02.2009
Сообщений: 30
Сообщение Конструкторы класса и двунаправленный список

Недавно начал изучать классы и работу с динамической памятью и столкнулся с проблемой:
Необходимо зделать двунаправленный список, в который с помощью конструктора класса объект добавляется в список. Пытаюсь зделать вот так:

Код класса:

Код:

#include <iostream.h>
#include <cstring.h>


class Student
{
public:

Student(Student *pp)
{
  cout << "|------------------------|" << endl;
  cout << "|         Zapis                  |" << endl;
  cout << "|------------------------|" << endl;

  cout << " Name: "; cin >> pp->name;

  cout << " ------------------------" << endl;

  cout << " Familiya: "; cin >> pp->surname;

  cout << " ------------------------" << endl;

  cout << " Otchestvo: "; cin >> pp->patronymic;

  cout << " ------------------------" << endl;

  cout << " Number group: "; cin >> pp->number_group;
  cout << " ------------------------" << endl;

}


 Student(Student *r, Student *p)
{
  cout << "|------------------------|" << endl;
  cout << "|         Zapis                  |" << endl;
  cout << "|------------------------|" << endl;

  cout << " Name: "; cin >> r->name;

  cout << " ------------------------" << endl;

  cout << " Familiya: "; cin >> r->surname;

  cout << " ------------------------" << endl;

  cout << " Otchestvo: "; cin >> r->patronymic;

  cout << " ------------------------" << endl;

  cout << " Number group: "; cin >> r->number_group;
  cout << " ------------------------" << endl;


  p->next = r;
  r->previous = p;
  r->next = 0;
  End = r;

}

    string name;
    string surname;
    string patronymic;

    int number_group;

  Student *End;                   // Последняя запись
  Student *next,*previous;   // Адресные поля


};
Код программы:

Код:

#include <vcl.h>
#include <conio.h>
#include "ClassStudent.cpp"

main()
{

Student *p,*r,*beg;
int n;
cout << "Skolko zapisey?: "; cin >> n;

cout << endl;

if (n==1)
{
	p = new Student(p);
	beg = p;                   // Начало списка
	p->previous = 0;
	p->next = 0;

}

else
{

p = new Student(p);           // Создание первой записи в списке
	beg = p;               // Начало списка
	p->previous = 0;
	p->next = 0;

for (int i = 0; i < n; i++)  // Создание следующих записей в списке
{

r = new Student(r,p);
p = r->End;
system("cls");
}

}

getch();
}
При попытке занести данные в информационные поля программа завершается и компилятор (BCB 2009) открывает файл xstring с подчеркнутой строчкой:
Код:
...
	void _Eos(size_type _Newsize)
		{	// set new length and null terminator
		_Traits::assign(_Myptr()[_Mysize = _Newsize], _Elem());
		}
...
Что тут не так? Подскажите.
(*_*) вне форума Ответить с цитированием
Старый 29.04.2009, 18:06   #2
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

И где вы заносите данные в информационные поля? Я лично в упор не вижу.
MaTBeu вне форума Ответить с цитированием
Старый 29.04.2009, 18:17   #3
(*_*)
Пользователь
 
Регистрация: 17.02.2009
Сообщений: 30
По умолчанию

В функциях - конструкторах:
Код:
...
 cout << " Name: "; cin >> pp->name;

  cout << " ------------------------" << endl;

  cout << " Familiya: "; cin >> pp->surname;

  cout << " ------------------------" << endl;

  cout << " Otchestvo: "; cin >> pp->patronymic;

  cout << " ------------------------" << endl;

  cout << " Number group: "; cin >> pp->number_group;
  cout << " ------------------------" << endl;

...
(*_*) вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Линейный Двунаправленный Список D1mon Помощь студентам 1 14.04.2009 21:37
Конструкторы и деконструкторы Элодар Gamedev - cоздание игр: Unity, OpenGL, DirectX 5 11.02.2009 10:25
Конструкторы Лорд Общие вопросы C/C++ 1 21.12.2008 18:35
Линейный двунаправленный список Seg_62 Паскаль, Turbo Pascal, PascalABC.NET 4 28.08.2008 21:02
переписать из массива в линейный двунаправленный список чётные элементы массива Black_Ak24 Помощь студентам 12 08.01.2008 00:44