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

Функция-шаблон С++ - C++

Восстановить пароль Регистрация
 
stepanov_ivan
0 / 0 / 0
Регистрация: 17.02.2011
Сообщений: 16
28.11.2011, 18:47     Функция-шаблон С++ #1
Создать функцию шаблон с двумя параметрами: массив элементов произвольного типа , длина массива. Функция шаблон должна зеркально отобразить значение элементов массива. Например: 'a', 'b', 'c', 'd', 'e' переводит в 'e', 'd','c','b','a'


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <cstdlib>
#include <iostream>
#include <string.h>
using namespace std;
template <typename zerkalo> 
class Zerkalo{
zerkalo *str;
 public:
       Zerkalo()
                 {
                   int slen=strlen(str);
                   str=new zerkalo[slen+1];
       
                 }
 ~Zerkalo(){delete []str;}
 void print()const{cout<<"Stroka: "<<str; cin>>str; cout<<"\n"; }
};
 
int main()
{
 
 
 
    system("PAUSE");
    return EXIT_SUCCESS;
}

Не могу сообразить куда этот кусок засунуть.
C++
1
2
3
4
5
6
7
 
    for(int i=0;i<slen/2;i++)
    {
        str[i] = str[i] + str[slen-i-1];
        str[slen-i-1] = str[i] - str[slen-i-1];
        str[i] = str[i] - str[slen-i-1];
    }
Да и вообще подскажите как доделать
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryLaptev
Эксперт C++
1004 / 783 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
28.11.2011, 18:58     Функция-шаблон С++ #2
stepanov_ivan, зачем ты класс состряпал? Сказано же: функция-шаблон с ДВУМЯ параметрами - тип элемента массива и размер массива...
Сыроежка
Заблокирован
28.11.2011, 19:03     Функция-шаблон С++ #3
stepanov_ivan,

У вас в задании сказано создать шаблонную функцию, а вы пытаетесь создать шаблонный класс.
stepanov_ivan
0 / 0 / 0
Регистрация: 17.02.2011
Сообщений: 16
30.11.2011, 13:50  [ТС]     Функция-шаблон С++ #4
подскажите как правильно создать функцию шаблон?
Сыроежка
Заблокирован
30.11.2011, 14:02     Функция-шаблон С++ #5
stepanov_ivan,

C++
1
2
3
4
5
6
template <typename T, size_t N>
void reverse_display( const T ( &a )[N] )
{
   for ( size_t i = 0; i < N; i++ ) std::cout << a[N-1-i];
   std::cout << std::endl;
}
Добавлено через 7 минут
stepanov_ivan,

Может быть вам лучше объявить шаблонную функцию следующим образом

C++
1
2
3
4
5
6
template <typename T, size_t N>
void reverse_display( const T *a )
{
   for ( size_t i = 0; i < N; i++ ) std::cout << a[N-1-i];
   std::cout << std::endl;
}
stepanov_ivan
0 / 0 / 0
Регистрация: 17.02.2011
Сообщений: 16
30.11.2011, 14:22  [ТС]     Функция-шаблон С++ #6
В main объект какого типа мне нужна создать?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.12.2011, 13:03     Функция-шаблон С++
Еще ссылки по теме:

Шаблон и функция C++
C++ Функция - шаблон
C++ Функция-шаблон. Подсчитать количество элементов, не попадающих в заданный интервал

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Сыроежка
Заблокирован
01.12.2011, 13:03     Функция-шаблон С++ #7
Цитата Сообщение от stepanov_ivan Посмотреть сообщение
В main объект какого типа мне нужна создать?
Пример вызова

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include   <iostream>
 
template <size_t N, typename T>
void reverse_display( const T *a )
{
   for ( size_t i = 0; i < N; i++ ) std::cout << a[N-1-i];
   std::cout << std::endl;
}
 
int main()
{
   const size_t n = 10;
   char s[n] = "ABCDEFGHI";
 
   reverse_display<n>( s );
}
Yandex
Объявления
01.12.2011, 13:03     Функция-шаблон С++
Ответ Создать тему
Опции темы

Текущее время: 08:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru