TemplateSwapByRef.cpp — различия между версиями
Материал из Вики ИТ мехмата ЮФУ
Ulysses (обсуждение | вклад) (Новая страница: «=== Файл swap.h === <source lang="cpp">#ifndef #SWAP_H #define SWAP_H template<typename T> void swapByRef(T & a, T & b) { T aCopy = a; a = b; b = a…») |
Ulysses (обсуждение | вклад) |
||
(не показаны 2 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
=== Файл swap.h === | === Файл swap.h === | ||
− | <source lang="cpp">#ifndef | + | <source lang="cpp">#ifndef SWAP_H |
#define SWAP_H | #define SWAP_H | ||
Строка 12: | Строка 12: | ||
#endif // SWAP_H</source> | #endif // SWAP_H</source> | ||
+ | Обратите внимание, что реализация шаблонов функций приводится целиком в заголовочном файле. | ||
=== Файл main.cpp === | === Файл main.cpp === | ||
Строка 22: | Строка 23: | ||
int main() { | int main() { | ||
int a = 3, b = 4; | int a = 3, b = 4; | ||
− | + | swapByRef(a, b); | |
cout << a << " -- " << b << endl; // 4 -- 3 | cout << a << " -- " << b << endl; // 4 -- 3 | ||
double c = 3.14, d = 2.71; | double c = 3.14, d = 2.71; | ||
− | + | swapByRef(c, d); | |
cout << c << " -- " << d << endl; // 2.71 -- 3.14 | cout << c << " -- " << d << endl; // 2.71 -- 3.14 | ||
}</source> | }</source> |
Текущая версия на 11:22, 11 октября 2013
Файл swap.h
#ifndef SWAP_H
#define SWAP_H
template<typename T>
void swapByRef(T & a, T & b) {
T aCopy = a;
a = b;
b = aCopy;
}
#endif // SWAP_H
Обратите внимание, что реализация шаблонов функций приводится целиком в заголовочном файле.
Файл main.cpp
#include <iostream>
#include "swap.h"
using namespace std;
int main() {
int a = 3, b = 4;
swapByRef(a, b);
cout << a << " -- " << b << endl; // 4 -- 3
double c = 3.14, d = 2.71;
swapByRef(c, d);
cout << c << " -- " << d << endl; // 2.71 -- 3.14
}