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

Напишите простой шаблон предикатной функции isEgualTo, которая сравнивает два своих параметра - C++

Восстановить пароль Регистрация
 
Rstuff
0 / 0 / 0
Регистрация: 25.03.2012
Сообщений: 18
15.02.2014, 23:09     Напишите простой шаблон предикатной функции isEgualTo, которая сравнивает два своих параметра #1
Напишите простой шаблон предикатной функции isEgualTo, которая сравнивает два своих параметра при помощи операции проверки равенства (==) и возвращает true, если они равны, и false, если не равны.

Используйте этот шаблон функции в программе, которая вызывает isEqualTo с различными встроенными типами аргументов.

Вот что набросал, однако не работает.. Прощу помощи
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "stdafx.h"
#include <iostream>
using namespace std;
 
template <typename T>
bool isEqualTo (const T& arg1, const T& arg2){ 
return arg1==arg2;
}
 
 bool operator ==(auto &lhs, auto &rhs)
{
    if (lhs != rhs)
       return false; 
 
    return true; 
}
int _tmain(int argc, _TCHAR* argv[])
{
 
cout<<endl<<(isEqualTo(m1,m2) ?"equal":"not equal")<<endl;
 
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.02.2014, 23:09     Напишите простой шаблон предикатной функции isEgualTo, которая сравнивает два своих параметра
Посмотрите здесь:

C++ Напишите программу, которая сравнивает ответ пользователя на вопрос с правильным ответом.
Написать программу,которая сравнивает два числа C++
Напишите программу, которая использует шаблон функции для определения наименьшего из двух аргументов. C++
Написать программу,которая сравнивает два числа,введеных с клавиатуры C++
Напишите перегруженную функцию power (), которая принимает два целочисленных параметра типа int и возвращает целочисленное значение типа int C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Enotniy
 Аватар для Enotniy
96 / 95 / 14
Регистрация: 15.01.2014
Сообщений: 283
15.02.2014, 23:25     Напишите простой шаблон предикатной функции isEgualTo, которая сравнивает два своих параметра #2
Rstuff, пишите ошибку и что не работает, а так придётся долго вглядываться или запускать VS

Добавлено через 1 минуту
Цитата Сообщение от Rstuff Посмотреть сообщение
C++
1
2
3
4
5
6
bool operator ==(auto &lhs, auto &rhs)
{
* * if (lhs != rhs)
* * * *return false; 
return true; 
}
не думаю что так просто можно перегрузить оператор ==

Добавлено через 2 минуты
Цитата Сообщение от Rstuff Посмотреть сообщение
cout<<endl<<(isEqualTo(m1,m2)
что такое m1 m2 ? Надо обьявить для начала

Добавлено через 1 минуту
Rstuff,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
 
template <typename T>
bool isEqualTo (const T& arg1, const T& arg2){ 
return arg1==arg2;
}
 
int main()
{
 int m1 =0;
 int m2 = 1 -1;
cout<<endl<<(isEqualTo(m1,m2) ?"equal":"not equal")<<endl;
 
    return 0;
}
вот работает
Rstuff
0 / 0 / 0
Регистрация: 25.03.2012
Сообщений: 18
15.02.2014, 23:44  [ТС]     Напишите простой шаблон предикатной функции isEgualTo, которая сравнивает два своих параметра #3
Надо перегрузить оператор == ... Так не работает перегрузка, ошибка
IntelliSense: оператору, не являющемуся членом, требуется параметр с класса перечисляемого типа
DrOffset
6423 / 3797 / 878
Регистрация: 30.01.2014
Сообщений: 6,585
15.02.2014, 23:52     Напишите простой шаблон предикатной функции isEgualTo, которая сравнивает два своих параметра #4
Цитата Сообщение от Rstuff Посмотреть сообщение
Надо перегрузить оператор == ... Так не работает перегрузка, ошибка
IntelliSense: оператору, не являющемуся членом, требуется параметр с класса перечисляемого типа
Зачем его перегружать? У тебя в задании этого не требуется.
В задании написано для встроенных типов. Для встроенных типов перегружать операцию сравнения вообще нельзя (по правилам языка). Перегружать можно только для классов, либо перечислений. Об этом тебе и написал компилятор.
Таким образом кода:
C++
1
2
3
4
template <typename T>
bool isEqualTo (const T& arg1, const T& arg2){ 
return arg1==arg2;
}
будет достаточно для решения задачи.
Yandex
Объявления
15.02.2014, 23:52     Напишите простой шаблон предикатной функции isEgualTo, которая сравнивает два своих параметра
Ответ Создать тему
Опции темы

Текущее время: 12:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru