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

Непонятки с наследованием - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Частотный анализ текста (пословный) http://www.cyberforum.ru/cpp-beginners/thread109354.html
24. Частотный анализ текста (пословный). (Подсчитывается относительная частота встречаемости каждого слова в тексте; границами слов являются символы: точка, запятая, двоеточие, точка с запятой, пробел, скобки, тире, вопросительный и восклицательный знаки.) Текст вводится с клавиатуры, должна быть возможность записи его в файл; вывод результатов на экран, принтер или в файл по желанию...
C++ Builder В каком заголовочном файле находится delay (BCB6)? В справочной системе C++ Builder 6 Нашел вот этот пример использования функции clock и выдает ошибку не находит функцию delay. Это глюк разроботчиков или я чето путаю? /* clock example */ #include <time.h> #include <stdio.h> #include <dos.h> int main(void) { http://www.cyberforum.ru/cpp-beginners/thread109341.html
Цифры и числа! C++
Для заданного М вывести все: а) квадраты натуральных чисел, не превосходящие М; б) факториалы натуральных чисел, не превосходящие М; в) целые степени данного числа К, не превосходящие М. не успеваю к зачёту помогите сделать есть небольшой набросок выдаёт ахинею( Добавлено через 20 минут Для заданного М вывести все: а) квадраты натуральных чисел, не превосходящие М; б) факториалы...
C++ составить блок схемы к программам
1) При температуре воздуха зимой до -20 ◦ С потребления угля тепловой станцией составляет 50 тонн в день. При температуре воздуха от -20 ◦ С до -30 ◦ С ежедневное потребление угля увеличивается на 5 тонн; если же температура воздуха ниже -30 ◦ С, то потребление угля увеличивается еще на 7 тонн. Определить необходимое количество угля, потребляемого тепловой станцией при заданной температуре...
C++ Найти квадратную подматрицу максимального размера http://www.cyberforum.ru/cpp-beginners/thread109332.html
Ввести матрицу, которая состоит из 0 и 1. Найти в ней квадратную подматрицу максимального размера, элементы которой имеют значение 1. Добавлено через 22 часа 27 минут
C++ посмотрите задания такого рода посмотрите задания такого рода подробнее

Показать сообщение отдельно
larev02
Сообщений: n/a
27.03.2010, 13:19     Непонятки с наследованием
Будьте добры, проясните пожалуйста такой момент:
Есть код:
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include <iostream>
using namespace std;
 
class Counter {
   protected:        
      unsigned int count;  
   public:
      Counter() : count(0)      
         {  }
      Counter(int c) : count(c)    
         {  }
      unsigned int get_count() const  
         { return count; }
      Counter operator ++ ()    
         { return Counter(++count); }
};
 
class CountDn : public Counter {
   public:
      CountDn() : Counter()
         { }
      CountDn(int c) : Counter(c)  
         { }
      CountDn operator -- ()    
         { return CountDn(--count); }
};
  
class postfix : public CountDn {
    public:
        postfix() : CountDn()
        {}
        postfix(int c) : CountDn(c)
        {}
        postfix operator ++(int)
        {
            return postfix(++count);
        }
        postfix operator --(int)
        {
            return postfix(--count);
        }
};
 
int main()
   {
   postfix c1;          
   postfix c2(100);
 
   cout << "\nc1=" << c1.get_count();  
   cout << "\nc2=" << c2.get_count();
 
   ++c1; ++c1; ++c1;                
   cout << "\nc1=" << c1.get_count();  
 
   --c2; --c2;                  
   cout << "\nc2=" << c2.get_count();  
 
   postfix c3 = --c2;  
   cout << "\nc3=" << c3.get_count();
   cout << endl;
   return 0;
   }
Компилятор выдает ошибку. Почему он не подставляет operation++ и operation-- от базового класса?

Если код немного переделать:
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include <iostream>
using namespace std;
 
class Counter {
   protected:        
      unsigned int count;  
   public:
      Counter() : count(0)      
         {  }
      Counter(int c) : count(c)    
         {  }
      unsigned int get_count() const  
         { return count; }
      Counter operator ++ ()    
         { return Counter(++count); }
};
 
class CountDn : public Counter {
   public:
      CountDn() : Counter()
         { }
      CountDn(int c) : Counter(c)  
         { }
      CountDn operator -- ()    
         { return CountDn(--count); }
};
  
class postfix : public CountDn {
    public:
        postfix() : CountDn()
        {}
        postfix(int c) : CountDn(c)
        {}
        postfix operator ++()
        {
            return CountDn::operator++();
        }
        postfix operator --()
        {
            return CountDn::operator--();
        }
        postfix operator ++(int)
        {
            return postfix(++count);
        }
        postfix operator --(int)
        {
            return postfix(--count);
        }
};
 
int main()
   {
   postfix c1;          
   postfix c2(100);
 
   cout << "\nc1=" << c1.get_count();  
   cout << "\nc2=" << c2.get_count();
 
   ++c1; ++c1; ++c1;                
   cout << "\nc1=" << c1.get_count();  
 
   --c2; --c2;                  
   cout << "\nc2=" << c2.get_count();  
 
   postfix c3 = --c2;  
   cout << "\nc3=" << c3.get_count();
   cout << endl;
   return 0;
   }
снова ошибка. На строках return CountDn::operator++(); и return CountDn::operator--(); пишет: conversion from `Counter' to non-scalar type `post' requested. Что ему от меня надо?

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