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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Колямбий
7 / 7 / 0
Регистрация: 18.12.2011
Сообщений: 137
#1

Переделать функции в шаблон - C++

29.04.2013, 11:26. Просмотров 327. Ответов 1
Метки нет (Все метки)

lib.h

C++
1
2
3
#pragma once
int **rnd(int sizeA, int sizeB);
int *Conversion(int **array, int sizeA, int sizeB);
file.cpp
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include "lib.h"
#include <iostream>
#include <cstdlib>
#include <ctime>
 
using namespace std;
 
int **rnd(int sizeA, int sizeB)
{
    int **array = new int *[sizeA];
    for(int i = 0; i < sizeA; ++i)
        array[i] = new int [sizeB];
 
    std::srand(std::time(NULL));
 
    for(int i = 0; i < sizeA; ++i)
        for(int j = 0; j < sizeB; ++j)
            array[i][j] = std::rand()%100;
    return array;
}
 
int *Conversion(int **array, int sizeA, int sizeB)
{
    int sum = 0;
    int *temp = new int [sizeA];
 
    for (int j = 0; j<sizeB; j++)
    {
        for (int i = 0; i<sizeA; i++)
            {
                
                sum += array[i][j];
                
            }
        temp[j] = sum;
        sum = 0;
    }
    
    
    return temp;
}
v11.cpp
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
27
28
29
30
31
32
33
34
35
#include "lib.h"
#include <iostream>
#include <sstream>
#include <stdlib.h>
 
using namespace std;
 
void main(int argc, char* argv[])
{
    cout << "Исходный массив:\n";
    int sizeA =  6, sizeB = 5;
    if(argc>1)
    {
        sizeA = atof(argv[1]);
        sizeB = atof(argv[2]);
    }
 
    int **array = rnd(sizeA,sizeB);
    for (int i = 0; i < sizeA; i++)
    {
        for (int j = 0; j < sizeB; j++)
            cout << array[i][j] << " ";
        cout << endl;
    }
    int *temp = Conversion(array,sizeA,sizeB);
 
    cout << "После преобразования двумерного массива в одномерный:" << endl;
    for (int i = 0; i < sizeB; i++)
    {
        cout << temp[i] << " ";
    }
    cout << endl;
    //return 0;
    system("Pause");
}
вообще не знаком в шаблонами функций, необходимо вот переделать int **rnd(int sizeA, int sizeB)... и int *Conversion(int **array, int sizeA, int sizeB) в шаблоны, подскажите как сделать

Добавлено через 19 минут
сделал вот так
C++
1
2
3
4
5
6
7
8
9
10
11
#pragma once
template <class T1> T1 **rnd(T1 sizeA, T1 sizeB);
template <class T2> T2 *Conversion(T2 **array, T2 sizeA, T2 sizeB);
 
 
template <class T2> T2 *Conversion(T2 **array, T2 sizeA, T2 sizeB)
{....
 
template <class T1> 
T1 **rnd(T1 sizeA, T1 sizeB)
{...
но при запуске проги выдает ошибку
Ошибка 3 error LNK2019: ссылка на неразрешенный внешний символ "int * __cdecl Conversion<int>(int * *,int,int)" (??$Conversion@H@@YAPAHPAPAHHH@Z) в функции _main C:\Users\Nik-Mox\documents\visual studio 2010\Projects\v11\v11\v11.obj v11
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.04.2013, 11:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Переделать функции в шаблон (C++):

Переделать шаблон - функций - C++
Условие: Подсчитать среднее арифметическое элементов, расположенных выше главной диагонали. Программу я сделал, но препод просит...

Переделать класс на шаблон класса - C++
помогите реализовать этот код по функции template . не смог((( #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; int...

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

Есть функция которая добавляет элемент типа int в конец массива. Как ее переделать через шаблон - C++
Есть функция которая добавляет элемент типа int в конец массива. Как ее переделать через шаблон, чтобы можно было добавлять элементы в...

Используя перегруженные функции и шаблон функции удалить из массива элемент по индексу - C++
Стоит следующая задача: Используя перегруженные функции и шаблон функции удалить из массива элемент по индексу. Функцию написал, но я...

шаблон функции. Задачей функции является округление вышеуказанного вещественного числа с заданной точностью - C++
Написать функцию, которая принимает в качестве параметров вещественное число и количество знаков после десятичной точки, которые должны...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
30.04.2013, 14:25 #2
Может всё же как-то так должно быть:
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
27
28
29
30
31
32
33
34
template <class T>
T **rnd(int sizeA, int sizeB)
{
    T **array = new T *[sizeA];
    for(int i = 0; i < sizeA; ++i)
        array[i] = new T [sizeB];
 
    std::srand(std::time(NULL));
 
    for(int i = 0; i < sizeA; ++i)
        for(int j = 0; j < sizeB; ++j)
            array[i][j] = std::rand()%100;
    return array;
}
 
template <class T>
T *Conversion(T **array, int sizeA, int sizeB)
{
    int sum = 0;
    int *temp = new T [sizeA];
 
    for (int j = 0; j<sizeB; j++)
    {
        for (int i = 0; i<sizeA; i++)
            {
                
                sum += array[i][j];
                
            }
        temp[j] = sum;
        sum = 0;
    }
    return temp;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.04.2013, 14:25
Привет! Вот еще темы с ответами:

Как переделать эту прогу в шаблон классов "Двусвязный список" произвольных элементов - C++
#include &lt;iostream.h&gt; #include &lt;stdlib.h&gt;2 #include &lt;conio.h&gt; using namespace std; struct Element { public: double...

Ошибка в шаблоне функции: "Отсутствуют экземпляры шаблон функции, соответствующие списку аргументов" - C++
#include &lt;iostream&gt; #include &lt;iterator&gt; #include &lt;map&gt; #include &lt;Windows.h&gt; #include &lt;functional&gt; #include &lt;string&gt; #include...

Перегруженные функции и шаблон функции - C++
Указания: 1. Перегрузить функции для массивов типа char, int, и double. 2. Инстанцировать шаблон функции для типов char, int, и double....

Шаблон функции - C++
Всем доброй ночи. Помогите, пожалуйста, написать шаблон функции count() для подсчета числа появлений некоторого значения в массиве. В...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru