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

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

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

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

23.08.2014, 01:06. Просмотров 226. Ответов 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 в сравнении сделать объектом производного класса?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.08.2014, 01:06     Сравнение класса наследника через конструктор с одним аргументом
Посмотрите здесь:

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

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

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

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

Как передавать значения строкового типа в конструктор через объект класса? - C++
Как передавать значения строкового типа в конструктор через объект класса? Или просто, как передавать знач строкового типа в конструктор? ...

Как задать размер массива, который является членом класса, через конструктор? - C++
Почему так? И как же тогда задать размер этого массива? class Test { public: Test(int size) : arrSize(size){}; private: ...

Почему в списке инициализации конструктора дочернего класса нельзя вызывать конструктор родительского через его пространство имён? - C++
Есть класс D и от него порождён класс Wd Тут вот например всё работает корректно (использую обращение ч/з пространство имён класса &quot;D::&quot; ...

Вывод из класса наследника - C++
У меня получается вывод из главного класса, а когда вывожу через функцию из класса наследника выдает ошибку, из-за чего так???? хоты вывожу...

Создание базового класса и наследника - C++
в данной программе , попросили добавить в void main ///camera obj//// и дописать в конструктор camera::camera() сразу вывод через...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DrOffset
6918 / 4111 / 939
Регистрация: 30.01.2014
Сообщений: 6,908
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);
    }
Yandex
Объявления
23.08.2014, 01:26     Сравнение класса наследника через конструктор с одним аргументом
Ответ Создать тему
Опции темы

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