Цитата(alux @ Jun 15 2007, 13:50)

Очень ценное замечание... Я и не говорил, что сейчас в моей функции что-либо передавалось. Я спрашивал КАК сделать, чтобы функция могла работать с переменными разных типов. Возможно, это можно сделать через перегрузку функции.
Все-таки не понятно, что именно Вы хотите. Перегрузка имени функции - это использование одного имени для разных фукнций. Т.е. это не одна функция, которая работает с разныими данными, а это разные функции, которые работают с разными данными. Например:
Код
void f(int x) { ... }
void f(float x) { ... }
...
f(1); // вызывается void f(int x)
f(1.0) // вызывается void f(float x)
Вообще, написать функцию, которая бы работала с разными типами данных на С++, нельзя - как компилятор будет знать, какой код ему родить, если он не знает их типов (ни размеров, ни форматов).
Существует случай, когда хотя данные и разные, но работа с ними делается единообразно, и писать аналогичный, почти повторяющийся код в разных функциях не есть достойное занятие. Для этого случая в С++ имеются шаблоны, которые позволяют описать действия функции без привязки к конкретному типу, а при использовании - инстанцировать функцию по шаблону с заданным параметром. Например:
Код
template<typename T>
T square(T x)
{
return x*x;
}
...
int x = square(5);
printf("Result: %d\n", x);
float y = square(5.0);
printf("Result: %f\n", y);
результат:
Result: 25
Result: 25.000000
В общем, Вам бы надо поконкретнее определиться, что именно Вам нужно, и уже на основе этого выбирать средство для реализации.