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

Как быть, если в шаблоне классе предполагается использование ОДИНАКОВЫХ типов? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ файлы, запись руского текста http://www.cyberforum.ru/cpp-beginners/thread304942.html
Вот простой пример.Подскажите можно както сделать чтобы записывало руский текст.Так записует иероглифы #include <iostream> #include <fstream> #include <windows.h> using namespace std; char...
C++ CodeBlocks - не запускается консольное приложение Привет всем. Скачал CodeBlocks , создаю консольное приложение(автоматом создается Hello world) , нажимаю Run , Build and run и ничего не происходит. Подскажите пожалуйста что не так? Спасибо. http://www.cyberforum.ru/cpp-beginners/thread304938.html
C++ Файловый В/В для *.rom
Проблема такая... Создаю файл с помощью ofstream хоть с ios::binary, хоть без - файл читается нормально, но характеристики его 20 байт , а на диске 4096 байт, хекс редактором (010Editor) также 20...
C++ преобразование выражения в дерево
Создалась проблема. Есть задание - разложить на множители квадратный трехчлен с помощью деревьев на си.
C++ База данных на С++ http://www.cyberforum.ru/cpp-beginners/thread304899.html
Помогите пожалуйста!нужна помощь,нужно преобразовать базу данных на С++ с классом в базу данных на Си со структурами!кто сможет,помогите пожалуйста!буду очень благодарна!) файл "новый текстовый...
C++ Метод Ньютона решения НУ, знаки производных Здравствуйте, понимаю, что подобных тем на форуме уже выше крыши, но все таки создам) Задача решить нелинейное уравнение методом Ньютона, программа решает всё нормально, только хочу сделать такую... подробнее

Показать сообщение отдельно
kravam
быдлокодер
1700 / 887 / 45
Регистрация: 04.06.2008
Сообщений: 5,493

Как быть, если в шаблоне классе предполагается использование ОДИНАКОВЫХ типов? - C++

25.05.2011, 21:37. Просмотров 346. Ответов 3
Метки (Все метки)

Вот код, понятно, демонстрационныый, упрощён донельзя для понятности.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <windows.h>
#include <iostream>
using namespace std;
 
template <class T, class t>
class lin_ur {
 public:
  lin_ur (T a, t b){};
  void f(T) {cout<< "Одна функция!"<< endl;};
  void f(t) {cout<<"Совсем другая функция!"<< endl;};
}; 
 
int main(){
 SetConsoleCP(1251);
 SetConsoleOutputCP(1251);
 //lin_ur<double, int> ur_0 (34, 23);
  lin_ur<int, int> ur_0 (34, 23);
}
Всё просто. Но! Предполагается, что типы T и t могут совпадать. (То есть просто расскоменьте строчку lin_ur<int, int> ur_0 (34, 23); и закомменьте предыдущую) А тогда компилятор заявляет , что f не перегружена и вообще он не знает, какую из двух f выбрать, что понятно- типы-то одинаковые. Меж тем хоть прототипы функций В ЭТОМ СЛУЧАЕ и совпадают, содержание их может очень и очень разниться.
Так что, какую функцию вызвать- большая разница.

Как же это сделать, если типы будут совпадать? Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru