Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
IrinaCk
0 / 0 / 0
Регистрация: 13.03.2013
Сообщений: 27
#1

Абстрактный тип данных - C++

08.04.2013, 07:28. Просмотров 1137. Ответов 7
Метки нет (Все метки)

Помогите пожалуйста вот с таким задание: Создать абстрактный тип данных - человек, у которого есть имя и возраст (структура). Определить функцию, которая устанровит имя и возраст по умолчанию. Заранее спасибо за помощь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.04.2013, 07:28
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Абстрактный тип данных (C++):

Абстрактный тип данных - C++
Доброго времени суток! Помогите, пожалуйста, с заданием: Создать список произвольной организации. Областью данных каждого элемента...

Абстрактный тип данных - C++
Необходимо создать АТД class, в области данных которого содержится динамическое строка и ёё длина. Среди методов класса создать...

абстрактный тип данных - C++
надо написать на С++... разработать абстрактный тип данных :двусвязный циклический список. атд должен обеспечивать выполнение следующих...

Абстрактный тип данных - C++
Пользуясь указателями, напишите реализацию списке открытого с двух сторон, в котором вставка и удаление происходят с обоих концов но не...

Абстрактный тип данных - C++
1) Добавьте к АТД «стек» функцию top, что получает элемент из верхушки стека, не удаляя его, и реализуйте ее аналогично функции pop. В...

Как описать абстрактный тип данных? - C++
очередь

7
Croessmah
Ушел
13770 / 8020 / 924
Регистрация: 27.09.2012
Сообщений: 19,751
Записей в блоге: 3
Завершенные тесты: 1
08.04.2013, 08:33 #2
STL?
0
lemegeton
2931 / 1360 / 136
Регистрация: 29.11.2010
Сообщений: 2,725
08.04.2013, 08:42 #3
Цитата Сообщение от IrinaCk Посмотреть сообщение
Создать абстрактный тип данных - человек
Абстрактный тип данных это такой тип данных, который предоставляет функции для работы с данными, но не реализует их.

Абстрактный тип данных:
C++
1
2
3
4
class Human {
 public:
  virtual const std::string &getName() const = 0;
};
Не-абстрактный тип данных:
C++
1
2
3
4
5
6
class Human {
 public:
  const std::string &getName() const { return name; }
 private:
  std::string name;
};
Цитата Сообщение от IrinaCk Посмотреть сообщение
структура
Абстрактный тип данных -- структура!? В смысле, что структурой удобнее, потому что методы по-умолчанию публичные?

Цитата Сообщение от IrinaCk Посмотреть сообщение
Определить функцию, которая устанровит имя и возраст по умолчанию.
С одной стороны, можно сделать класс, который будет абстрактным, но реализовывать некую функцию, с другой стороны, если эта функция единственная, то смысл как-бы теряется.



Фиг знает, короче, что вам там надо сделать.
Наверно, вот такой код не будет сильно противоречить условиям.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
#include <string>
 
struct Human {
 public:
  virtual ~Human() = 0;
  const std::string &getName() const { return name; }
  int getAge() const { return age; }
  void setDefaultData() {
    name = "default";
    age = 0;
  }
 private:
  std::string name;
  int age;
};
Human::~Human() {};
 
 
struct Man : public Human {
};
 
int main(int argc, char *argv[]) {
  //Human h; // не получится, класс абстрактен
  Man m; // получится
 
  std::cin.get();
  return 0;
}
0
IrinaCk
0 / 0 / 0
Регистрация: 13.03.2013
Сообщений: 27
08.04.2013, 08:42  [ТС] #4
хоть как, нам дано задание и не сказано как сделать, главное его выполнить, чтобы программа сработала.
0
lemegeton
2931 / 1360 / 136
Регистрация: 29.11.2010
Сообщений: 2,725
08.04.2013, 08:43 #5
Цитата Сообщение от IrinaCk Посмотреть сообщение
главное его выполнить, чтобы программа сработала.
В задании ни слова о том, что программа должна что-то делать. Там даже не сказано, что это должна быть программа, а не просто заголовочный файл.
0
IrinaCk
0 / 0 / 0
Регистрация: 13.03.2013
Сообщений: 27
08.04.2013, 08:44  [ТС] #6
Спасибо большое)
0
BumerangSP
4287 / 1409 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
08.04.2013, 11:53 #7
Может, имелось в виду что-то такое:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include <iostream>
#include <string>
class Human
{
protected:
    struct Data
    {
        std::string name_;
        size_t age_;
    }data;
public:
    virtual void defaultData(std::string name, size_t age) = 0
    {
        this->data.name_ = name; 
        this->data.age_= age;
    }
    virtual void showData()
    {
        std::cout << this->data.name_<< " " << this->data.age_<<std::endl;
    }
        virtual ~Human() {}
};
 
class Man: public Human
{
public: 
    virtual void defaultData(std::string name, size_t age)
    {
        this->data.name_ = name; 
        this->data.age_= age;
    }
    virtual void showData()
    {
        std::cout << this->data.name_<< " " << this->data.age_<<std::endl;
    }
};
 
class Women: public Human
{
public: 
    virtual void defaultData(std::string name, size_t age)
    {
        this->data.name_ = name; 
        this->data.age_= age;
    }
    virtual void showData()
    {
        std::cout << this->data.name_<< " " << this->data.age_<<std::endl;
    }
};
int main()
{
    Human *ptr[2];
    ptr[0] =  new Man;
    ptr[1] =  new Women;
    ptr[0]->defaultData("HisName", 30);
    ptr[1]->defaultData("HerName", 27);
    ptr[0]->showData();
    ptr[1]->showData(); 
    delete[] *ptr;
    system("pause");
    return 0;
}
1
IrinaCk
0 / 0 / 0
Регистрация: 13.03.2013
Сообщений: 27
08.04.2013, 18:01  [ТС] #8
И вам большое спасибо)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.04.2013, 18:01
Привет! Вот еще темы с ответами:

Абстрактный тип данных-Список(С++ алгоритмы) - C++
Абстрактный тип данных &quot;Список&quot;. Сформировать список, в котором сохраняется информация о предметах, изъятых на таможне за отчетный...

Разработайте и реализуйте абстрактный тип данных - C++
Помогите пожалуйста с задачей. Разработайте и реализуйте абстрактный тип данных для представления календаря. Он должен представлять...

Создать абстрактный тип данных-класс вектор - C++
Создать абстрактный тип данных-класс вектор, который имеет указатель на long, число элементов и переменную состояния. Определить...

Создать абстрактный тип данных - класс вектор - C++
Доброго времени суток! Тут задачку такую не хилую подогнали. Нужна помощь опытных программистов. Ребят, выручайте, без вас...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru