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

Сравнение при наследовании - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти все пути шахматного коня между двумя заданными полями, не содержащие повторяющихся полей http://www.cyberforum.ru/cpp-beginners/thread1064714.html
Найти все пути шахматного коня между двумя заданными полями, не содержащие повторяющихся полей. ПОМОГИТЕЕЕЕ если кто напишет код прокоментите плиз Добавлено через 6 часов 16 минут ну пжста...
C++ Найти раскраску вершин графа минимальным числом цветов так, что ни одно ребро не соединяло две вершины одного цвета Найти раскраску вершин графа минимальным числом цветов так, что ни одно ребро не соединяло две вершины одного цвета. помогите по братски срочно надо) http://www.cyberforum.ru/cpp-beginners/thread1064713.html
Найти максимальные элементы столбцов матрицы C++
Помогите, пожалуйста, с таким заданием: определить и инициализировать двумерный массив целочисленных элементов, затем удвоить все положительные четные значения; с помощью оператора new создать...
Структуры.не считывается из файла C++
Всем привет! Ребят,тут такое дело,вобщем задали нам лабу написать.Нужно было написать программу,которая считывала бы из файла фамилию сотрудника и выводила бы его год рождения и оклад,программа то...
C++ Работает с Int, а с char отказывается http://www.cyberforum.ru/cpp-beginners/thread1064673.html
#include <stdio.h> main() { char i; i=func1('t','p'); printf("%c", i); } func1(char p,char f) { char d;
C++ Работа со строками. Необходимо подсчитать слова содержащие русские и англ буквы Среда Visual C++2010 По логике должно работать, но почему то кириллица игнорируется, пытался исправить подключением библиотеки locale не помогло. При использовании одной лишь латиницы алгоритм... подробнее

Показать сообщение отдельно
Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,168
Завершенные тесты: 2
07.01.2014, 11:29
Цитата Сообщение от taras atavin Посмотреть сообщение
virtual bool operator ==(A &a)=0;
* virtual bool operator !=(A &a)=0;
какой смысл несут операторы сравнения для интерфейса? ровным счетом никакого, немного изменил базовый класс
и вот пример
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
#include <iostream>
 
class A
{
    int _a;
public:
    A(int a): _a(a){}
    virtual ~A() = 0;
    virtual bool operator==(const A& rhs){ return _a == rhs._a;}
    virtual bool operator!=(const A& rhs){ return _a != rhs._a;}
};
 
A::~A(){}
 
class B : public A
{
    char _c;
public:
    B(int a, char var): A(a), _c(var){}
};
 
 
int main()
{
    B first(1, 'a'), second(2, 'b'), third(1, 'c');
    std::cout << std::boolalpha << "first == third: " <<(first == third) << "\n"
              << "second != third: " << (second != third)<< std::endl;
    return 0;
}
если в классах потомках не переопределять методы сравнения, то собственно сравнение будет происходить по правилам определенным в родительском классе, что абсолютно логично, то есть по полю char c в классе B сравнение, естественно, производится не будет
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru