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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Spirit370
1 / 1 / 2
Регистрация: 08.08.2013
Сообщений: 86
#1

Сравнение класса наследника через конструктор с одним аргументом - C++

23.08.2014, 01:06. Просмотров 255. Ответов 1
Метки нет (Все метки)

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
#include <iostream>
using namespace std;
////////////////////////////////
class Counter
{
protected:
    unsigned int count;
public:
    Counter () : count (0){}
    Counter ( int c ) : count(c){}
     unsigned int get_count () const
    {return count;}
    Counter operator++(int temp)
    {
        temp = count;
        count++;
        return temp;
    }
    inline Counter operator++()
    {
        return Counter ( ++count);
    }
};
class CountDn : public Counter
{
public:
    CountDn():Counter(){}
    CountDn(int c):Counter(c){}
    Counter operator-- ()
    {return Counter ( --count);}
    /*void operator=(Counter c1)
    {
        count = c1.get_count();
    }*/
};
void main()
{
    CountDn c2(5),c1;
    c1 = --c2;
    cout << c1.get_count() << endl;
    system("PAUSE");
}
Значит, в этом коде, когда я сравниваю
C++
1
2
CountDn c2(5),c1;
    c1 = --c2;
выдаёт ошибки, про не соответствие сравнение(это я вообщем). И пишет(в ошибках) , что "с2" это объект базового класса counter.

Так вот, я решил эту проблему, перегрузив оператор "=". Так вот, какие есть ещё способы сравнить эти два объекта. Или как объект с2 в сравнении сделать объектом производного класса?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.08.2014, 01:06
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Сравнение класса наследника через конструктор с одним аргументом (C++):

Сравнение двух объектов через конструктор с одним аргументом - C++
class Int { private: unsigned int integer; public: inline int get_int()const {return integer;} Int () : integer (0){} ...

Вызвать конструктор с одним аргументом - C++
Есть класс с конструктором принимающим один аргумент типа T. Этим аргументом должно быть значение T по умолчанию, то есть T(). Однако,...

Конструктор класса наследника - C++
Я не могу понять свою ошибку к примеру если пишу так все нормально class one { public: one(); };

Не работает конструктор наследника класса - C++
Есть класс: template &lt;class T&gt; class HashTable { HashTable(int _size) { size = _size; for (int i = 0; i &lt;...

Компилятор требует конструктор, принимающий аргументом экземпляр того же класса (не ссылку) - C++
Доброго времени суток. Проблема такова: имеется ряд нижеприведённых классов (для простоты всё, что навскидку не касается данной...

Пример класса с конструктором и деструктором, создание экземпляра класса через конструктор с параметрами - C++
Привести пример класса с конструктором и деструктором, созданием экземпляра класса с помощью конструктора с параметрами.

1
DrOffset
7517 / 4513 / 1025
Регистрация: 30.01.2014
Сообщений: 7,362
23.08.2014, 01:26 #2
Цитата Сообщение от Spirit370 Посмотреть сообщение
выдаёт ошибки
Оператор-- возвращает Counter, а для CountDn нет доступной операции присваивания CountDn <- Counter.
Ее надо определить,
C++
1
2
3
4
5
6
7
8
    CountDn & operator=(Counter const & x)
    {
        if(this != &x)
        {
            Counter::operator=(x);
        }
        return *this;
    }
либо изменить оператор--
C++
1
2
3
4
    CountDn operator--()
    {
        return CountDn(--count);
    }
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.08.2014, 01:26
Привет! Вот еще темы с ответами:

Конструктор копирование у наследника - C++
Основной класс class matrix { public: int N,M; // N - количество строк, M - количество столбцов матрицы int **pa; ...

Присвоение значения переменной класса через конструктор - C++
#include &lt;iostream&gt; using namespace std; class Help { int userID; public: Help(int id) {int userID = id;} ~Help()...

Ввод с клавиатуры полей класса через конструктор - C++
программа работает, но работаен не совсем вернро. В общем при создании второго элемента вектора, при вызове конструктора объект буквально...

Правда, что указатель класса-наследника не может указывать на объект класса-родителя? - C++
Доброго времени суток! Пример кода ниже. Правда ли , что указатель класса-наследника не может указывать на объект класса-родителя? ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru