Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
Raphael92
0 / 0 / 1
Регистрация: 12.10.2010
Сообщений: 154
1

Абстрактные и производные классы

14.11.2011, 16:46. Просмотров 555. Ответов 8
Метки нет (Все метки)

Создать класс - данные - абстрактный базовый класс. Создать производные классы - данные типа сигнал, данные типа результат обработки и вспомогательные данные. Все данные имеют функции отображения, сохранения и обработки. Благодарю за помощь!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2011, 16:46
Ответы с готовыми решениями:

Абстрактные и производные классы С++
Проблема: Есть базовый класс "Фигура", и производные: "Точка", "Круг",...

Наследование, базовые классы и производные классы
Добрый вечер.Задание: необходимо разработать поля и методы наследуемые из...

Абстрактные классы
Помогите плиз, экзаменационное задание, а разобраться не могу с ним: Создать...

Абстрактные классы
Есть 3 абстракции, линия(бесконечная), луч(бесконечен в одну сторону) и отрезок...

Абстрактные классы
void _tmain() { const int lim = 100; MyFunction *pFunc ; int count = 0;...

8
Dar101
40 / 40 / 7
Регистрация: 12.05.2011
Сообщений: 109
14.11.2011, 17:04 2
Вроде так:
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
class data
{
     virtual void  showSomthing () {}
     virtual void  saveSomthing () {}
     virtual void  doSomthing () {}
};
 
class signal  : public data
{
    virtual void  showSomthing () {}
    virtual void  saveSomthing () {}
    virtual void  doSomthing () {}
};
 
class result  : public data
{
    virtual void  showSomthing () {}
    virtual void  saveSomthing () {}
    virtual void  doSomthing () {}
};
 
class subsidiaryData  : public data
{
    virtual void  showSomthing () {}
    virtual void  saveSomthing () {}
    virtual void  doSomthing () {}
};
 
int main()
{
    data* pSignal = new signal();
    data* pResult = new result();
    data* pSubsidiaryData = new subsidiaryData();
    return 0;
}
0
ForEveR
В астрале
Эксперт С++
7997 / 4755 / 652
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
14.11.2011, 17:14 3
Dar101, Абстрактный подразумевает под собой, что имеется хотя бы одна чисто-виртуальная функция.
1
Dar101
40 / 40 / 7
Регистрация: 12.05.2011
Сообщений: 109
14.11.2011, 17:19 4
ForEveR, я подразумевал, что все три функции в классе data чисто-виртуальные.
Вот так точнее:
C++
1
2
3
     virtual void  showSomthing ()=0;
     virtual void  saveSomthing ()=0;
     virtual void  doSomthing ()=0;
Теперь верно?
*Спасибо за замечание.
0
ForEveR
В астрале
Эксперт С++
7997 / 4755 / 652
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
14.11.2011, 17:25 5
Dar101, А почему они все закрытые? Как использовать-то? В public забыли поместить.
0
Dar101
40 / 40 / 7
Регистрация: 12.05.2011
Сообщений: 109
14.11.2011, 17:29 6
Цитата Сообщение от ForEveR Посмотреть сообщение
Dar101, А почему они все закрытые? Как использовать-то? В public забыли поместить.
Да, забыл, тяжело пока писать код, не проверяя запуском.

Стоит ли в дочерних классах писать virtual? Вроде можно и так и так, но по правилам хорошего кода всё-таки?
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
class data
{
public:
     virtual void  showSomthing ()=0;
     virtual void  saveSomthing ()=0;
     virtual void  doSomthing ()=0;
};
 
class signal  : public data
{
public:
    virtual void  showSomthing () {}
    virtual void  saveSomthing () {}
    virtual void  doSomthing () {}
};
 
class result  : public data
{
public:
    virtual void  showSomthing () {}
    virtual void  saveSomthing () {}
    virtual void  doSomthing () {}
};
 
class subsidiaryData  : public data
{
public:
    virtual void  showSomthing () {}
    virtual void  saveSomthing () {}
    virtual void  doSomthing () {}
};
 
int main()
{
    data* pSignal = new signal();
    data* pResult = new result();
    data* pSubsidiaryData = new subsidiaryData();
    return 0;
}
0
ForEveR
В астрале
Эксперт С++
7997 / 4755 / 652
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
14.11.2011, 17:32 7
Dar101, Не суть. Виртуального деструктора не наблюдаю - зря.
0
Dar101
40 / 40 / 7
Регистрация: 12.05.2011
Сообщений: 109
14.11.2011, 17:39 8
Да, еще одна ошибка. Поправил. Так? Проверка показывает, что всё ок.
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
#include <iostream>
class data
{
public:
    virtual void  showSomthing ()=0;
    virtual void  saveSomthing ()=0;
    virtual void  doSomthing ()=0;
    virtual ~data() {std::cout << "data deleted" << std::endl;}
};
 
class signal  : public data
{
public:
    virtual void  showSomthing () {}
    virtual void  saveSomthing () {}
    virtual void  doSomthing () {}
    ~signal() {std::cout << "signal deleted"<< std::endl;}
};
 
class result  : public data
{
public:
    virtual void  showSomthing () {}
    virtual void  saveSomthing () {}
    virtual void  doSomthing () {}
};
 
class subsidiaryData  : public data
{
public:
    virtual void  showSomthing () {}
    virtual void  saveSomthing () {}
    virtual void  doSomthing () {}
};
 
int main()
{
    data* pSignal = new signal();
    delete pSignal;
    data* pResult = new result();
    data* pSubsidiaryData = new subsidiaryData();
    system("pause");
    return 0;
}
0
ForEveR
В астрале
Эксперт С++
7997 / 4755 / 652
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
14.11.2011, 17:46 9
Dar101, Да ок.
0
14.11.2011, 17:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.11.2011, 17:46

Абстрактные классы
Объясните пожалуйста почему это не работает и как исправить? cannot declare...

Абстрактные классы
В общем есть у нас 2 абстрактных класса CA и CB и 2 дочерних от них класса CC и...

Абстрактные классы
Ребята! Помогите с таким делом. Мне дали задание создать абстрактный класс...


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

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

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