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

Абстрактные классы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ cin получил char вместо double и while зациклился. Почему? http://www.cyberforum.ru/cpp-beginners/thread650415.html
Привет! Решил задачу из книги Шилдта. "Годы Юпитера в Земные" Захотел проверить, что произойдет, если пользователь ошибется и вместо значения года введет символ. В итоге цикл while() бесконечно...
C++ Проверить 4 задачи Пишу не себе, а девушке. Сам немного знаком с Делфи и MQL . Решения вроде бы правильные. Проверьте пожалуйста. Просто у меня не на чем. 1. Заданы числа a , b . Проверить, одного ли знака эти... http://www.cyberforum.ru/cpp-beginners/thread650413.html
Не изменяет запись C++
В общем... Не могу разобраться, почему 4-ая(find) функция не меняет данные...Помогите, пожалуйсто.) #include <stdio.h> #include <conio.h> #include <string.h> #include <Windows.h> struct tov...
C++ <iostream> в каких случаях используется?
Что такое <iostream> расскажите о нем, для чего он используется.
C++ начать отладку http://www.cyberforum.ru/cpp-beginners/thread650385.html
Здравствуйте! Скажите пожалуйста, почему в этом коде system("pause") не работает??? #include "stdafx.h" #include <stdio.h> #include <math.h> int main(void) { double result; double x =...
C++ В составе программы описать функцию 1.В составе программы описать функцию, которая формирует список М1 – копию списка М и список М2, представляющий собой ”перевернутый” список М. 2.Дана матрица 7х9 вещественного типа. Создать... подробнее

Показать сообщение отдельно
AndreaZzZ
0 / 0 / 0
Регистрация: 11.09.2012
Сообщений: 6
12.09.2012, 16:07  [ТС]
CC (как и CA для CB) является дополнением, но иногда и само используется. Я не вижу смысла иметь две одинаковые записи в каждом классе.

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
#include <iostream>
 
class CA abstract {
    public:
        virtual void test( void ) = 0;
        virtual void fun( void ) = 0;
};
 
class CB abstract : public CA {
    public:
        virtual void new_test( void ) { std::cout << "Call function cd.test();" << std::endl; }
        virtual void new_fun( void ) { std::cout << "Call function cd.fun();" << std::endl; }
};
 
class CC : public CA {
    public:
        void test( void ) { std::cout << "Call function cc.test();" << std::endl; }
        void fun( void ) { std::cout << "Call function cc.fun();" << std::endl; }
};
 
class CD : public CB, public CC {
    public:
        typedef CB BaseClass;
        void new_test( void ) { BaseClass::new_test(); }
        void new_fun( void ) { BaseClass::new_fun();}
};
 
int main () {
    std::cout << "Program:" << std::endl;
    CD cd;
    cd.test(); cd.fun(); cd.new_test(); cd.new_fun();
 
    while(true);
 
    return 0;
}
Что то не работает это если, ругается на:
error C2259: 'CD' : cannot instantiate abstract class due to following members: 'void CA::test(void)' : is abstract
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru