Форум программистов, компьютерный форум 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); конструктором с соответствующими аргументами для обеспечения инициализации значений. Сама структура. const int Len = 30; struct golf { char fullname; int handicap; }; void 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 'const char ' где накосячил ?
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
6423 / 3797 / 878
Регистрация: 30.01.2014
Сообщений: 6,586
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;
    }
};
 
Текущее время: 14:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru