Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
 Аватар для AlexP11223
141 / 110 / 30
Регистрация: 20.04.2011
Сообщений: 582

Наследование\перегрузка, не понимаю в чем ошибка

31.05.2011, 11:46. Показов 704. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Почему в выделенных местах пишет ошибку про неопределенность? Если оставить наследование только от Counter, то все норм. Пробовал Counter::count++ тоже самое.
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 Counter
   {
   protected:                            //NOTE: not private
      unsigned int count;                //count
   public:
      Counter() : count(0)               //constructor, no args
         {  }
      Counter(int c) : count(c)          //constructor, one arg
         {  }
      unsigned int get_count() const     //return count
         { return count; }
      Counter operator ++ ()             //incr count (prefix)
         { return Counter(++count); }
   };
////////////////////////////////////////////////////////////////
class CountDn : public Counter
   {
   public:
      CountDn() : Counter()              //constructor, no args
         { }
      CountDn(int c) : Counter(c)        //constructor, 1 arg
         { }
      CountDn operator -- ()             //decr count (prefix)
         { return CountDn(--count); }
   };
////////////////////////////////////////////////////////////////
class CountP : public Counter, CountDn
{
    CountP() : Counter()
    {}
    CountP(int c) : Counter(c)
    {}
    CountP operator ++ (int) 
    { return CountP([COLOR="Red"]count[/COLOR]++); }
    CountP operator -- (int)
    { return CountP([COLOR="#ff0000"]count[/COLOR]--); }
};
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.05.2011, 11:46
Ответы с готовыми решениями:

Наследование, не понимаю в чем ошибка
Задание из Лафоре, наследование. Даже пример есть, но почему-то не работает: в консоле выводит первые 79 символов s1 и все. VS 2010 class...

Не понимаю в чём ошибка (Тема Наследование)
Ошибка какая-то, в колледже работал в Rad studio, но там выдавало ошибку, мол "Проблемма с Project1(не может найти). Пришел домой программа...

Инкапсуляция. Наследование. Полиморфизм. Не понимаю в чем моя ошибка
Само задание: Реализовать класс BytesConverter с полем bytes. В конструкторе присвоить bytes значение 0. Реализовать методы setBytes(int...

7
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
31.05.2011, 11:49
Nubik756, virtual public Counter. А лучше наследуйся только от CountDn, но открытым наследованием.
0
 Аватар для AlexP11223
141 / 110 / 30
Регистрация: 20.04.2011
Сообщений: 582
31.05.2011, 11:51  [ТС]
Что такое открытое? public? Я еще ничего не знаю про виртуальное)
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
31.05.2011, 11:52
Nubik756, public. Раз не знаешь про виртуальное - наследуйся от одного класса. CountDn.
Но очень не уверен, что у тебя будет доступен count в классе CountP.
0
 Аватар для AlexP11223
141 / 110 / 30
Регистрация: 20.04.2011
Сообщений: 582
31.05.2011, 11:58  [ТС]
Пишет про недоступность при попытке что-либо сделать (даже создать объекта CountP)
C++
1
2
3
4
5
6
7
8
9
10
11
class CountP : public CountDn
{
    CountP() : CountDn()
    {}
    CountP(int c) : CountDn(c)
    {}
    CountP operator ++ (int) 
    { return CountP(count++); }
    CountP operator -- (int)
    { return CountP(count--); }
};
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
31.05.2011, 12:03
Учимся читать ошибки. Ага.

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
#include <iostream>
 
class Counter
   {
   protected:                            //NOTE: not private
      unsigned int count;                //count
   public:
      Counter() : count(0)               //constructor, no args
         {  }
      Counter(int c) : count(c)          //constructor, one arg
         {  }
      unsigned int get_count() const     //return count
         { return count; }
      Counter operator ++ ()             //incr count (prefix)
         { return Counter(++count); }
   };
////////////////////////////////////////////////////////////////
class CountDn : public Counter
   {
   public:
      CountDn() : Counter()              //constructor, no args
         { }
      CountDn(int c) : Counter(c)        //constructor, 1 arg
         { }
      CountDn operator -- ()             //decr count (prefix)
         { return CountDn(--count); }
   };
////////////////////////////////////////////////////////////////
class CountP : public CountDn
{
public:
        CountP() : CountDn()
        {}
        CountP(int c) : CountDn(c)
        {}
        CountP operator ++ (int) 
        { return CountP(count++); }
        CountP operator -- (int)
        { return CountP(count--); }
}; 
 
int main()
{
    CountP count(5);
    std::cout << count.get_count() << '\n';
    count++;
    std::cout << count.get_count() << '\n';
}
0
 Аватар для AlexP11223
141 / 110 / 30
Регистрация: 20.04.2011
Сообщений: 582
31.05.2011, 12:21  [ТС]
эм...А в чем разница между этим кодом и моим?) Что-то не нашел ни 1 отличия в классах, но почему-то работает)
у меня при аналогичном main'е выдавало
cannot access private member declared in class 'CountP'
1> 1.cpp(47) : see declaration of 'CountP::CountP'
1> 1.cpp(45) : see declaration of 'CountP'
но вроде же ничего не изменилось оО
0
Эксперт С++
 Аватар для grizlik78
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
31.05.2011, 12:27
Строка 31 в новом коде
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.05.2011, 12:27
Помогаю со студенческими работами здесь

Ошибка -is not a valid integer value (не является допустимым целым значением), не понимаю в чем ошибка
//--------------------------------------------------------------------------- #include &lt;vcl.h&gt; #pragma hdrstop #include...

Не понимаю в чем ошибка
при введении а=1,b=1,с=1 выводит -26 вместо -5,2. Не делит,по какой-то причине.В чем проблема? using namespace std; int t; double...

В чём ошибка - не понимаю!
В чём ошибка ? - не понимаю!: &lt;?php $str1 = &quot;wordabcdef123word&quot;; echo &quot;Исходная строка - &quot; . $str1. &quot;&lt;br&gt;&lt;br&gt;&quot;; ...

Не понимаю в чем ошибка
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &quot;pch.h&quot; #include &lt;iostream&gt; const int N = 25; int writee(int a); int main() ...

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


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru