Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Динамический массив из эл-ов разного типа.


Автор: Haddingjar 18.12.2007, 22:02
Задача: создать классы `работник` (имя, год рождения) и `менеджер` (имя, год рождения, ранг (число целого типа)). Реализовать конструкторы и деструкторы. Создать динамический массив, имеющий элементы различных типов (или менеджер, или работник) и вывести информацию о всех его элементах.

ЗЫ Я продумал несколько вариантов реализации. Очень хотелось бы изучить и Ваши. Заранее огромное спасибо!

Автор: dizel003 18.12.2007, 22:26
Цитата(Haddingjar @ 18.12.2007,  22:02)


ЗЫ Я продумал несколько вариантов реализации. Очень хотелось бы изучить и Ваши. Заранее огромное спасибо!

Покажи свои варианты!!!

Автор: mrbrooks 18.12.2007, 22:32
Цитата

Покажи свои варианты!!! smile 


Вот именно уважаемый Haddingjar - с удовольствием поможем - но покажите свои варианты. А то как то не верится ...  smile 

Автор: baldina 18.12.2007, 22:43
Цитата

Очень хотелось бы изучить и Ваши


 smile  smile 

Автор: Andrey44 19.12.2007, 09:18
Уважаемый в С/С++ невозможно сделать массив с различными типами данных.
Хотя в каких-то других языках по-моему можно. smile 

Автор: Lazin 19.12.2007, 09:27
Цитата(Andrey44 @  19.12.2007,  09:18 Найти цитируемый пост)
Уважаемый в С/С++ невозможно сделать массив с различными типами данных.

почему, нельзя?
а как-же вариантные типы данных... в данном случае препод хочет иерархию классов Person->Worker->Manager, в динамичесском массиве нужно будет хранить указатели на базовый класс Person, и работать с ними через виртуальные ф-ии.
простой вариантный тип данных:
Код

struct Variant {
 union
 {
  int int_data;
  double d_data;
 };
 BYTE type;
};

вариант с классами
Код

Person
{
  std::string name;

  Person(const std::string &n) : name(n)
  {
  }

  virtual ~Person()
  {
  }

  virtual std::string get_name()
  {
    return name;
  }
};

class Manager : public Person
{
.....
};

Автор: Andrey44 19.12.2007, 09:46
Lazin, со всем уважением , но об указателях на базовый класс не было ни слова. smile 

А во вторых если там будут указатели, то они будут одного типа. Посто мы будем вызывать методы разных производных классов smile 

Автор: Voldemar2004 19.12.2007, 10:07
Цитата(Haddingjar @  18.12.2007,  23:02 Найти цитируемый пост)
оздать динамический массив, имеющий элементы различных типов (или менеджер, или работник)
Он имеет в виду структуру.  smile  

Автор: Andrey44 19.12.2007, 10:10
Цитата(Voldemar2004 @  19.12.2007,  10:07 Найти цитируемый пост)
Он имеет в виду структуру.  smile  


Да , как-то мы не подумали, может быть все-таки структуру ему надо smile 

Автор: DigitSphinx 19.12.2007, 18:57
мы в универе делали похожую лабу, идея в том чтобы создать базовый класс «работник» и производный от него «менеджер» и хранить все в векторе указателей на базовый класс «работник» и пользоваться его вирт. функциями, а уважаемый Haddingjar походу ничего не сделал, и ждет пока за него все сделают!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)