|
|
Опубликовано 04.10.2014 20:45:19
|
|
|

В языках высокого уровня мы используем перегрузку для функций, которая применяется в функциях с разными функциями, но с одинаковым количеством параметров, и для разных типов и одинакового количества параметров нужны шаблоны
Апплет C++
- #include<iostream>
- using namespace std;
- template <class T>
- T max(T a,T b)
- {
- return a>b?a:b;
- }
- int main()
- {
- int a,b;cin>>a>>b;
- cout<<max(a,b);
- return 0;
- }
Копирование кода Это простой пример: шаблон ключевых слов<класс T> является началом структуры шаблона, поэтому нам не нужно многократно писать несколько кода на C++ с одной и той же функцией при поиске максимального значения Обратите внимание, что при вызове функции её тип автоматически совпадает. Это не обязательно показывать. Вышеописанное — самое базовое применение, но мы столкнёмся с следующими ситуациями
- #include<iostream>
- using namespace std;
- template <class T,class E>
- E max(T a,E b)
- {
- return a>b?a:b;
- }
- int main()
- {
- int a;float b;cin>>a>>b;
- cout<<max(a,b);
- return 0;
- }
Копирование кода Что делать, когда нашей функции нужны два разных типа, думаю, вы сможете понять это после прочтения приведённого выше кода. Но в любом случае, их объединяет то, что типы автоматически совпадают. На самом деле бывают и ошибки: если мы не можем хорошо сопоставить тип, то есть «голова быка неправильная», то автоматическое сопоставление компилятором изменит тип параметра согласно правилам неявного преобразования типа, что в конечном итоге приведёт к потере точности результата. Посмотри на код, можешь попробовать.
- #include<iostream>
- using namespace std;
- template <class T,class E>
- E max(T a,E b)
- {
- return a>b?a:b;
- }
- int main()
- {
- int a;float b;cin>>a>>b;
- cout<<max(a,b);
- return 0;
- }
Копирование кода Вышеописанный материал не очень сложный, но есть много мест, которые можно исследовать, я не знаю вашего мнения |
|
Предыдущий:c Мини-программа, написанная InlineСледующий:Я выложил логотип, сделанный для своего форума, и показал его всем!
|