Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
124 / 116 / 67
Регистрация: 07.11.2014
Сообщений: 788
1

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

20.05.2016, 15:24. Просмотров 832. Ответов 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
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.05.2016, 15:24
Ответы с готовыми решениями:

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

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

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

Функция создающая новую матрицу
Нужна функция которая создает новую квадратную матрицу, где элементы вычисляются по формуле ...

4
Модератор
Эксперт С++
9924 / 8444 / 5132
Регистрация: 18.12.2011
Сообщений: 22,613
20.05.2016, 15:54 2
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
124 / 116 / 67
Регистрация: 07.11.2014
Сообщений: 788
20.05.2016, 15:56  [ТС] 3
zss, а
Цитата Сообщение от Aymurat Посмотреть сообщение
Адрес созданного объекта функция возвращает в main(). Использовать полиморфизм : аппарат абстрактных классов и виртуальных функции.
Тоже в этом коде?
0
Модератор
Эксперт С++
9924 / 8444 / 5132
Регистрация: 18.12.2011
Сообщений: 22,613
20.05.2016, 17:23 4
Лучший ответ Сообщение было отмечено 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
124 / 116 / 67
Регистрация: 07.11.2014
Сообщений: 788
20.05.2016, 17:43  [ТС] 5
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.05.2016, 17:43

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

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

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

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


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

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

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