Форум программистов, компьютерный форум 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() { подробнее

Показать сообщение отдельно
Pari
40 / 3 / 0
Регистрация: 24.11.2013
Сообщений: 139
08.08.2014, 18:20     Наследование, счетчик, перегрузка операций: К префиксным операциям нет доступа
обычный счетчик с уровнями наследования. почему-то к префиксным операциям нет доступа. в чем дело?


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
71
72
#include "stdafx.h"
#include <iostream>
using namespace std;
///////////////////////////////////////////////////////////
class Counter
{
protected:     // заметьте, что тут не следует использовать private
    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;                         // переменные класса CountDn
    Postfix c2(100);
 
    cout << "\nc1 = " << c1.get_count();// выводим значения на экран
    cout << "\nc2 = " << c2.get_count();
 
    ++c1; ++c1; ++c1;                   // увеличиваем c1
    cout << "\nc1 = " << c1.get_count();// показываем результат
 
    --c2; --c2;                         // уменьшаем c2
    cout << "c2 = " << c2.get_count();  // показываем результат
 
    Postfix  c3 = --c2;   // создаем переменную c3 на основе c2
    cout << "\nc3 = " << c3.get_count();// показываем значение
    cout << endl;
 
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru