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

Перегрузка оператора при наследовании - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Битовые операции и операции смещения языка С http://www.cyberforum.ru/cpp-beginners/thread1018313.html
Доброго времени суток господа,помогите пожалуйста.Есть 2 кода к задаче,первый работает верно(переводит обычные числа в 16-ти ричные),а второй код не переводит обратно(из 16-ти ричных в обычные).Вот прилагаю 2 кода,не могли бы вы мне помочь со вторым кодом.. (1) #include<stdio.h> #include<iostream> #include<conio.h> using namespace std; void main () { int UnitStateWord;
C++ перегрузка всем привет) мне нужна помощь)я пытаюсь научиться программировать на с++. вот первая проблема которая возникла у меня. написал программу перегрузка функций-членов. вот мой код: #include <iostream> class Ractangle { public: Ractangle(int width, int height); ~Ractangle(); http://www.cyberforum.ru/cpp-beginners/thread1018280.html
C++ Для массива
Как перерузить -> ( обращение к члену класса) под массив ?
Qt или WinAPI для десктоп приложения C++
Здравствуйте. Решил взять себе какой-нибудь проект для получения опыта. Все, что смог придумать, это что-то вроде центра уведомлений, как в хроме. Встал вопрос: использовать Qt WinAPI. WinAPI привлекает взаимодействием с системой напрямую, но как-то страшно за него браться. А Qt напрягает весом библиотек. Тем более, если уведомления будут браться из расширений в виде dll и если каждое будет...
C++ типы данных для MPI http://www.cyberforum.ru/cpp-beginners/thread1018270.html
у меня такой уточняющий вопрос: если я передаю в среду структуру подобного вида: struct Equation { int a,b,c; }; я могу указать в MPI_Send(...) тип данных MPI_INT ? Или надо создавать пользовательский тип данных? На данный момент вполне себе рабочий вариант такой: ...
C++ Исследовать сходимость последовательности //// Исследовать сходимость последовательности {x_n } к данному числу a, используя определение предела последовательности. Для каждого заданного ε найти такое натуральное N, что для всех n≥N |x_n-a|<ε. Задать 5 различных значений ε (их изменение выполнять в цикле). Предел последовательности находить с помощью функции, в которую передаётся текущее значение ε в качестве параметра, а возвращается... подробнее

Показать сообщение отдельно
Onito
0 / 0 / 0
Регистрация: 25.11.2013
Сообщений: 20
25.11.2013, 13:03     Перегрузка оператора при наследовании
Здравствуйте, подскажите пожалуйста, как избежать следующей ошибки без явного определения в производном классе перегрузки оператора:

Ошибка:
main.cpp:45: error: no match for 'operator++' (operand type is 'CountPost')
main.cpp:45: candidate is:
main.cpp:34: Count CountPost::operator++(int)
main.cpp:34: note: candidate expects 1 argument, 0 provided

По сути компилятор пытается использовать постфиксный вариант игнорируя наследованный префиксный.

Листинг программы:
#include <iostream>

using namespace std;

class Count
{
protected:
unsigned int count;
public:
Count() : count(0)
{ }
Count(int c) : count(c)
{ }
int put()const
{
return count;
}
Count operator++()
{ return Count(++count); }
operator int()
{ return count; }
};

class CountDn : public Count
{
public:
Count operator--()
{ return Count(--count); }
};

class CountPost : public CountDn
{
public:
Count operator++(int )
{ return Count(count++);}
Count operator--(int )
{return Count(count--);}
};

int main()
{
CountDn b;
cout << ++b << endl;
CountPost a;
cout << ++a << endl;
cout << a++ << endl;
cout << a-- << endl;
cout << a << endl;
cout << a.put();
}
в строке cout << ++b << endl; всё впорядке
а эта строка cout << ++a << endl; вызывает указанную выше ошибку
ОС: Ubuntu 13.10, Qt.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru