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

Наследование, счетчик, перегрузка операций: К префиксным операциям нет доступа - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ В первую строку выходного файла выведите ровно N различных целых чисел http://www.cyberforum.ru/cpp-beginners/thread1240108.html
ПОМОГИТЕ РЕШИТЬ ЭТУ ЗАДАЧУ НА С++ ПЖ!!!! Как знают все близкие (и не очень близкие) знакомые Раджеша Кутраппали, ему сложно общаться с женщинами. Также всем известно, что как и во многих...
C++ Указатель на функцию, укзатель на воид и возвращаемое функцией значение Есть функции, идентичные по функционалу, но возвращающие значения разных типов(сами значения не важны). double a() { cout << 123 << endl; return 23.4; } int b() { cout << 123 << endl; http://www.cyberforum.ru/cpp-beginners/thread1240021.html
Замена структуры с функциями на класс с методами C++
Заменить код приведенный ниже на соответствующие объявление класса golf. Замените функцию setgolf(golf & g, const char*name, int hc); конструктором с соответствующими аргументами для обеспечения...
Проверка на равенство буквы и элемента из массива C++
выдает ошибку вот такая проблема инструкция else if (A == "й" || A == "Й" )//дает ошибку 1 no conversion from 'const char *' to 'int' //и ошибку 2 int' differs in levels of indirection from...
C++ Компиляция класса вектор. Ошибка: missing template arguments before «v» http://www.cyberforum.ru/cpp-beginners/thread1239982.html
Собственно код: #include <iostream> #include <fstream> #include <vector> #include <string> using namespace std; int main(){
C++ Как получить адрес переменной типа unsigned char? Всем привет! Как получить адрес переменной типа unsigned char? Всё ерунда получается #include <iostream> using namespace std; int main() { подробнее

Показать сообщение отдельно
DrOffset
7351 / 4451 / 1009
Регистрация: 30.01.2014
Сообщений: 7,292
10.08.2014, 02:42
Цитата Сообщение от Pari Посмотреть сообщение
в классе Postfix для чего нужен третий конструктор?
мы "испортировали" оператор-- из базового класса CountDn. В строке 71 есть вот такой код
C++
1
Postfix  c3 = --c2;   // создаем переменную c3 на основе c2
operator-- возвращает объект класса CountDn. Но инициализация требуется объекта с3 класса Postfix. В классе Postfix нет способа провести такую инициализацию, поэтому нужно было написать конструктор, чтобы добавить возможность это делать.

Добавлено через 10 минут
Pari, кстати префиксные операторы реализованы не совсем корректно. Правильнее будет так:
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
class Counter
{
protected: 
    unsigned int count;              // счетчик
public:
    Counter() : count(0)              // конструктор без параметров
    { }
    Counter(int c) : count(c)        // конструктор с одним параметром
    { }
    unsigned int get_count() const   // получение значения
    {
        return count;
    }
    Counter & operator++()             // оператор увеличения
    { 
        ++count;
        return *this;
    }
};
class CountDn : public Counter
{
public:
    CountDn() : Counter()            // конструктор без параметров
    { }
    CountDn(int c) : Counter(c)      // конструктор с одним параметром
    { }
    CountDn & operator--()             // оператор уменьшения
    { 
        --count;
        return *this;
    }
};
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru