Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.10.2011, 14:14   #1
masashama
Учусь слушать
Пользователь
 
Регистрация: 30.01.2011
Сообщений: 66
Вопрос Шаблоны функций

Код:
#include "stdafx.h"
#include <iostream>

using namespace std;

template<class T> Т mах(Т а, Т b) 
 { 
    if (a > b) return(a); 
    else return(b); 
 } 

 float max(float, float); 
 int max(int, int); 

int main(void) 

 { 
    cout << "Максимум 100 и 200 равен " << max(100, 200) << endl; 
    cout << "Максимум 5.4321 и 1.2345 равен " << max(5.4321, 1.2345) << endl; 

	return 0;
 }
Помогите исправить код и подробно объясните где и почему ошибка.
Среда разработки VS 2010.
Ошибки компиляции:
error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "mах"
error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
error C2146: синтаксическая ошибка: отсутствие ")" перед идентификатором "а"
и подобные.

Пример не мой, скопирован рабочий, хотя если я свой и пишу на подобии то тоже некомпилит =(. Зарание спасибо за ваше внимание
Люблю программировать =)
masashama вне форума Ответить с цитированием
Старый 04.10.2011, 16:59   #2
ds.Dante
Старожил
 
Аватар для ds.Dante
 
Регистрация: 06.08.2009
Сообщений: 2,992
По умолчанию

Цитата:
Сообщение от masashama Посмотреть сообщение
хотя если я свой и пишу на подобии то тоже некомпилит =(.
Странно, после простого переписывания должно было заработать. Там в коде затесались русские буквы.
ds.Dante вне форума Ответить с цитированием
Старый 04.10.2011, 21:47   #3
masashama
Учусь слушать
Пользователь
 
Регистрация: 30.01.2011
Сообщений: 66
По умолчанию

Xорошо, на мой код переписал сам нормальными английскими(мой косяк) буквами
Код:
#include <cstdlib>
#include <iostream>

using namespace std;

template <class T> T max (T a, T b)
{
    if (a>b) return a;
    else return b;
}

int max(int,int);

int main() {
    cout<<"Max "<<max(100,200);
    return 0;
}
NetBeans, компилятор gcc выдает
In function `main':
/cygdrive/c/Users/alexandr/Documents/NetBeansProjects/CppApplication_1/main.cpp:22: undefined reference to `max(int, int)'

Visual studio выдает
error LNK2019: ссылка на неразрешенный внешний символ "int __cdecl max(int,int)" (?max@@YAHHH@Z) в функции _main
fatal error LNK1120: 1 неразрешенных внешних элементов

Я очень надеюсь на вас АцкиеПрограммеры =)
Люблю программировать =)
masashama вне форума Ответить с цитированием
Старый 04.10.2011, 22:17   #4
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Что за странный прототип в середине файла?
int max(int,int); - удалить
вызывать как max<int>(100, 200)
TwiX вне форума Ответить с цитированием
Старый 04.10.2011, 22:32   #5
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,120
По умолчанию

masashama

error LNK2019: ссылка на неразрешенный внешний символ "int __cdecl max(int,int)" (?max@@YAHHH@Z) в функции _main

ты объявил перегрузку функции min для тип int, а тело функции зажал. на что вполне закономерно был отправлен в пешее эротическое.
Rififi вне форума Ответить с цитированием
Старый 05.10.2011, 00:54   #6
masashama
Учусь слушать
Пользователь
 
Регистрация: 30.01.2011
Сообщений: 66
По умолчанию

Сбасибо товарисчи оба последних совета мне очень помогли =) Поменял имя функции на maximum и вызвал maxamum<int>(200,100). Хмм странно что про шаблоны функции я читал урок именно с этого сайта и там надо было объявлять прототип. И пример вверху взят именно оттуда, наверно потому что учебник старый но именно ему я благодарен даже Штилд не смог все мне разъяснить а тут прочитал и все понял =) только с дружественными классами маленько туплю =)
Люблю программировать =)

Последний раз редактировалось masashama; 05.10.2011 в 01:02.
masashama вне форума Ответить с цитированием
Старый 05.10.2011, 01:01   #7
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Можно взглянуть на тот самый урок??
TwiX вне форума Ответить с цитированием
Старый 05.10.2011, 01:46   #8
masashama
Учусь слушать
Пользователь
 
Регистрация: 30.01.2011
Сообщений: 66
По умолчанию

Конечно пожалуйста Тот самый урок
Люблю программировать =)
masashama вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++, шаблоны функций и классов DimR Фриланс 9 09.03.2011 15:03
Шаблоны функций optimator Общие вопросы Delphi 0 13.11.2010 17:29
Шаблоны функций. (*_*) Общие вопросы C/C++ 2 05.06.2009 20:21
перегруженные шаблоны функций и корни линейных уравнений liver1981 Общие вопросы C/C++ 6 08.04.2009 18:54
шаблоны функций с++6.0 tanya Общие вопросы C/C++ 18 20.12.2008 19:39