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

Ошибка: не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Открыть exe на другой машине, без использования специальных библиотек http://www.cyberforum.ru/cpp-beginners/thread1221151.html
Скажите пожалуйста, какие свойства проекта надо изменить в Visual Studio, чтобы exeшник открывался на другой машине, без использования специальных библиотек и тд.
C++ Вычисление функции составить структурную схему алгоритма и проект программы вычисления функции, один параметр ввести с клавиатуры, а другой задать как константу, все вычисляемые значения вывести на экран. http://www.cyberforum.ru/cpp-beginners/thread1221136.html
Не получается перегрузить << C++
Добрый день. Никак не получается вывести разность a-b. Однако компилятор не ругается, если выводить только один объект. Хедер с объявлением класса class timeClass { public: timeClass(int h = 0, int m = 0) { min = 60*h+m;
Переведите пожалуйста с Паскаля на СИ++. Сумма ряда C++
uses crt; var s,si,x:real; i,n:integer; function fact(x:integer):longint; begin if (x=1) or (x=0) then fact:=1 else fact:=fact(x-1)*x; end; begin write('x = ');readln(x); repeat
C++ При закрытии консоли выдаётся сообщение http://www.cyberforum.ru/cpp-beginners/thread1221101.html
process exited after (сколько то секунд) seconds with return value 0 для продолжения нажмите любую клавишу - выдаёт при return(0\1) и при exit(0\1). как убрать? где то легко вкл и выкл, но где? пишу в devcpp 5.6.3
C++ Операторы цикла с предусловием и с постусловием: Выводить на экран суммарное штрафное время Задание: составить программу согласно заданию. Составьте программу, суммирующую штрафное время команд при игре в хоккей. Выводить на экран суммарное штрафное время обеих команд после любого его изменения. После окончания игры выдать итоговое сообщение. подробнее

Показать сообщение отдельно
zss
Модератор
Эксперт С++
 Аватар для zss
5956 / 5561 / 1788
Регистрация: 18.12.2011
Сообщений: 14,210
Завершенные тесты: 1
02.07.2014, 13:22     Ошибка: не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору
Справа от операции стоит объект не того типа, который описан в производном классе.
Вот так компилируется
C++
1
2
 ++static_cast<B>(x);   // проблемное место
    --static_cast<B>(x);  // проблемное место
Если объявить оба оператора в базовом классе, то тоже все получится
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
class A
{
protected:
    int count;
public:
    A(): count(0)
    {   }
    A(int x): count(x)
    {   }
    int get()
    {
        return count;
    }
    A& operator++ ()
    {
        ++count;
        return *this;
    }
   A& operator++ (int)
    {
        ++count;
        return *this;
    }
   A& operator-- ()
    {
        --count;
        return *this;
    }
   A& operator-- (int)
    {
        --count;
        return *this;
    }
};
class B : public A
{
public:
    B(): A()
    {   }
    B(int x): A(x)
    {   }
};
class C : public B
{
public:
    C(): B()
    {   }
    C(int x): B(x)
    {   }
};
int main()
{
    C x;
    x++;
    x--;
    ++x;   // проблемное место
    --x;  // проблемное место
    cout << x.get();
    _getch();
    return 0;
}
Но такой нюанс, мне кажется, зависит от компилятора.
 
Текущее время: 14:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru