Форум программистов, компьютерный форум 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 создать одномерный массив, состоящий из элементов типа double precision floating point, и заполнить его кубами максимальных элементов каждой колонки исходного массива. вывести оба массива. Удалить второй массив...
Структуры.не считывается из файла C++
Всем привет! Ребят,тут такое дело,вобщем задали нам лабу написать.Нужно было написать программу,которая считывала бы из файла фамилию сотрудника и выводила бы его год рождения и оклад,программа то работает,но из файла не считывается,помогите разобраться,а то послезавтра сдавать уже:cry: #include "stdafx.h" #include <fstream> #include <string.h> #include <stdlib.h> #include <stdio.h>...
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 не помогло. При использовании одной лишь латиницы алгоритм работает... В чём может быть проблема? #include <conio.h> #include <stdio.h> #include <string> void main() { printf("input\n"); подробнее

Показать сообщение отдельно
Кудаив
328 / 405 / 24
Регистрация: 27.05.2012
Сообщений: 1,162
Завершенные тесты: 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 сравнение, естественно, производится не будет
 
Текущее время: 02:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru