Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
125 / 117 / 67
Регистрация: 07.11.2014
Сообщений: 788

Функция создающая объекты производных классов

20.05.2016, 15:24. Показов 1505. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Функция получает входной параметр - целое число. Если оно равно 0, создается новый объект - окружность, если равно 3 - создается треугольник, если равно 4 - квадрат. Адрес созданного объекта функция возвращает в main(). Использовать полиморфизм : аппарат абстрактных классов и виртуальных функции.
Около половина терминов мне вообще не знакома... Задача нужна как можно поскорее, заранее спасибо.
Начало представляю так:
C++
1
2
3
4
5
6
7
8
int func(int sw)
{
switch(sw)
{
case 1:
...
}
}
Прошу помощи)
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.05.2016, 15:24
Ответы с готовыми решениями:

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

Наследование классов. Копирование производных классов
Здравствуйте всем, у меня такой вопрос: написал код #include "stdafx.h" class A //Создаем класс А { int mA; ...

Функция создающая матрицу
Доброго времени суток!Есть программа которая выполняет определенные действия над матрицей,они представлены в виде отдельных подпрограмм, но...

4
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,243
20.05.2016, 15:54
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
BaseClass* func(int sw)
{
    BaseClass* p;
   switch(sw)
   {
          case 1:
             p=new Triangle;
             break;
         case 2:
            p=new Circle;
            break;
        default:
            p=new BaseClass;
    }
    return p;
}
1
125 / 117 / 67
Регистрация: 07.11.2014
Сообщений: 788
20.05.2016, 15:56  [ТС]
zss, а
Цитата Сообщение от Aymurat Посмотреть сообщение
Адрес созданного объекта функция возвращает в main(). Использовать полиморфизм : аппарат абстрактных классов и виртуальных функции.
Тоже в этом коде?
0
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,243
20.05.2016, 17:23
Лучший ответ Сообщение было отмечено Aymurat как решение

Решение

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
class Base
{
public:
   virtual void f(){cout<<"base";}
};
clas TRiangle:public Base
{
public:
   virtual void f(){cout<<"Triangle";}
};
clas Circle:public Base
{
public:
   virtual void f(){cout<<"Circle";}
};
Base* func(int sw)
{
    Base* p;
   switch(sw)
   {
          case 1:
             p=new Triangle;
             break;
         case 2:
            p=new Circle;
            break;
        default:
            p=new Base;
    }
    return p;
}
int main()
{
    int n;cin>>n;
    Base* b=func(n);
    b->f();
}
1
125 / 117 / 67
Регистрация: 07.11.2014
Сообщений: 788
20.05.2016, 17:43  [ТС]
P.S.
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
#include <iostream>
using namespace std;
class Base
{
public:
    virtual void f() { cout << "base"; }
};
class Triangle : public Base
{
public:
    virtual void f() { cout << "Triangle"; }
};
class Circle : public Base
{
public:
    virtual void f() { cout << "Circle"; }
};
class Square : public Base
{
public:
    virtual void f() { cout << "Square"; }
};
Base* func(int sw)
{
    Base* p;
    switch (sw)
    {
    case 3:
        p = new Triangle;
        break;
    case 0:
        p = new Circle;
        break;
    case 4:
        p = new Square;
        break;
    default:
        p = new Base;
    }
    return p;
}
int main()
{
    int n; cin >> n;
    Base *b = func(n);
    b->f();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.05.2016, 17:43
Помогаю со студенческими работами здесь

Функция создающая новую матрицу
Нужна функция которая создает новую квадратную матрицу, где элементы вычисляются по формуле B=1/(i+j-1) Не уверен правильно ли функция...

Объекты классов не видны во вложенной функции одной из классов
Такая вот проблема. Есть функция play() класса Game, где создаются объекты классов Game, Character, Battle. В ней я обращаюсь к еще одной...

Преобразования объектов классов в объекты других классов
Задача типа обмен валют. Нужно конвертировать старый фунт стерлинг(фунт, шиллинг и пенсы) в доллары и обратно, по курсу 1 фунт = 50...

Сравнение производных классов
Друзья! Пусть у меня есть базовый класс S. У него есть два наследника A и B. Как мне скидывать, например в set, указатели (шаредпэтэры...

Использование базовых и производных классов
Не могу решить задачу с классами помогите с решением. Создать класс String – строка. Определить функции присваивания одной строки...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru