Форум программистов, компьютерный форум CyberForum.ru

Создание объекта через указатель на базовый абстрактный класс - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Перегрузка операторов! http://www.cyberforum.ru/cpp-beginners/thread1030431.html
Создать несколько объектов (например, a и b) разработанного класса. Класс – символьная строка. Реализовать для объектов данного класса перегрузку операции <= (b<=a). Содержимое объектов (a,b, их строк), до и после выполнения операции, вывести на экран.
C++ Конфликт имён в ромбовидном наследовании class A { private: int a; public: A(a0) : a(a0) {} } class B1 : virtual public A { private: int b; int c; http://www.cyberforum.ru/cpp-beginners/thread1030426.html
Возможно ли сделать такой массив в c++ C++
Здравствуйте. Можно ли в С++ сделать динамический ассоциативный массив, вроде этого на Javascript: var cars = ; cars = ; cars = 'BMW'; cars = 20000; cars = ; cars = 'Aston Martin'; cars = 50000;
Транслитерация c++ C++
Здравствуйте, есть часть задания, где нужно реализовать замену кирилици на латинь (Ввод: дом, вывод: dom). Подскажите самый простой способ.
C++ Доделать программу http://www.cyberforum.ru/cpp-beginners/thread1030388.html
Помогите дорешать задачку, пожалуйста. Система из n материальных точек в пространстве задана с помощью последовательности действительных чисел x1,y1,z1,p1,x2,y2,z2,p2,......xn,yn,zn,pn-координаты i-ой точки,а pi-ее вес(i=1,2,....,n). Получить координаты центра тяжести системы. Мой код. В двумерном массиве mas строки - 4 параметра каждой координаты точки системы, столбцы - нумерация точек...
C++ Конструктор копирования и оператор присваивания Спасибо всем тем, кто заглянул на огонек. Проблема: Реализовать конструктор копирования и оператор присваивания для класса User. Вопрос: В чем разница между конструктором копирования и оператором присваивания? #ifndef MYSKYPE_H #define MYSKYPE_H #include <string> using namespace std; подробнее

Показать сообщение отдельно
ivan92
0 / 0 / 1
Регистрация: 30.01.2013
Сообщений: 188
06.12.2013, 12:35     Создание объекта через указатель на базовый абстрактный класс
Есть абстрактный класс, от него наследуется 3 класса. В программе предусмотрено создание нового объекта(добавление клиента страховой компании). client - тот самый базовый класс, getN показывает текущее количество клиентов. Работаю с объектами через указатель на базовый класс.

C++
1
2
3
4
 client *p[100];
........
client::changeN(client::getN()+1); //увеличиваем на 1 количество клиентов
p[client::getN()]=addClient();//добавляем клиента
вот и сама функция
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
client *addClient(){
    int client_type;
    string name;
    int bDay, bMonth,bYear,
        eDay, eMonth,eYear;
    int cost;
  cout<<"Выберите тип клиента(1 - взрослый, 2 - несовершеннолетний, 3 - пенсионер):";
    cin>>client_type;
    cout<<"Введите ФИО клиента:"; cin>>name;
    cout<<"Введите дату начала страховки(в формате дд.мм.гггг)";
    cin>>bDay>>bMonth>>bYear;
    cout<<"Введите дату конца страховки(в формате дд.мм.гггг)";
    cin>>eDay>>eMonth>>eYear;
    cout<<"Введите уплаченную сумму:"; cin>>cost;
    client *obj;
    switch(client_type){
      case 1: obj=new adult(bMonth,bDay,bYear,eMonth,eDay,eYear,cost, client::getN(), name);
                break;
    case 2: obj=new underage(bMonth,bDay,bYear,eMonth,eDay,eYear,cost, client::getN(), name);
                break;
    case 3: obj=new pensioner(bMonth,bDay,bYear,eMonth,eDay,eYear,cost, client::getN(), name);
                break;
    default: break;
  }
    return obj;
};
Программа выдает исключение при попытке вывести на экран нового клиента, хотя все компилируется. С++ изучаю недавно, может дело в том, что он функция возвращает только адрес, по которому ничего нет? Но как тогда мне поступить?

Добавлено через 12 часов 11 минут
ап!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 16:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru