С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Nikoys
26 / 26 / 6
Регистрация: 29.12.2010
Сообщений: 90
#1

Параметры шаблона - C++

30.11.2013, 22:07. Просмотров 213. Ответов 3
Метки нет (Все метки)

Доброго всем вечера. Вопрос по теории, который не выходит нагуглить.
К примеру, нужно хранить статический массив интов с точно известным количеством параметров, и его нужно передать как параметр шаблонного класса.
У меня, к примеру,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
const int s = ...;
 
int Matrix[s][s] = {...};
 
template<int size, int **array>
class MatrixClass
{
public:
    static inline int** func()
    {...};
}
...
int main()
{
     int array[s][s] = MatrixClass<s,Matrix>::func();
     ...
}
Разумеется, это не работает. Подскажите, как правильно двумерный массив задать и передать в параметры шаблонного класса можно?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.11.2013, 22:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Параметры шаблона (C++):

Параметры шаблона - C++
как в общем можно объяснить то что находиться в угловых скобках после template, я понимаю что template &lt;список параметров&gt;

параметры шаблона - C++
1) работа с параметрами шаблона; 2) создайте класс для обьекта типа &quot;муз. проигрыватель&quot;.постройте UMLдиаграмму. напишите реализацию на...

Шаблоны как параметры шаблона - C++
Привет, в книге увидел такой пример template&lt;template&lt;typename T&gt; class x&gt; class y; но из объяснений в книге я совершенно...

Параметры типа класса шаблона - C++
смотрите был такой код в файле заголовочном: template &lt;typename DataType&gt; class CircleList { ..................... а преподаватель...

Почему шаблонный параметр-шаблон не принимает другие параметры шаблона - C++
Т.е. нельзя вместо template &lt;typename T, template &lt;typename _Ty, class _Aloc = allocator&lt;_Ty&gt; &gt; class CONT = vector&gt; class...

Определение метода-шаблона за пределами шаблона класса - C++
День добрый! Разбираюсь в шаблонах, решил копнуть поглубже. Вот пример: template &lt;typename T1&gt; class K // шаблон класса { public:...

3
Jupiter
Каратель
Эксперт С++
6561 / 3982 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
30.11.2013, 22:14 #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
#include <iostream>
 
class Foo
{
public:
    template<class T, int M, int N>
    static void bar(const T (&arr)[M][N])
    {
        for (int i = 0; i < M; ++i)
        {
            for (int j = 0; j < N; ++j)
            {
                std::cout << arr[i][j] << ' ';
            }
            
            std::cout << '\n';
        }
    }
};
 
int main() 
{
    int arr[][2]
    {
        {0, 0},
        {0, 1},
        {1, 0},
        {1, 1}
    };
    
    Foo::bar(arr);
}
1
Nikoys
26 / 26 / 6
Регистрация: 29.12.2010
Сообщений: 90
30.11.2013, 22:37  [ТС] #3
Jupiter, а если мне нужна невоидовская функция? И я собираюсь возвращать матрицу? Тут много проблем тоже у меня
0
Jupiter
Каратель
Эксперт С++
6561 / 3982 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
30.11.2013, 22:43 #4
Nikoys, возвращай через ссылку
C++
1
2
3
4
5
6
7
8
9
10
11
12
static void bar(T (&arr)[M][N])
    {
        for (int i = 0; i < M; ++i)
        {
            for (int j = 0; j < N; ++j)
            {
                arr[i][j] = 100500;
            }
            
            std::cout << '\n';
        }
    }
1
30.11.2013, 22:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.11.2013, 22:43
Привет! Вот еще темы с ответами:

Друг шаблона - C++
Всем доброго дня !! Подскажите пожалуйста в чем может быть проблема ? когда блокирую 64 строку - то все нормально ((( при...

Наследование шаблона - C++
Есть два шаблона Array and NumericArray Хочется реализовать между ними иерархию типа NumericArray диревативынй класс а Array...

Шаблона функція - C++
Поможіть рішити. Задана матриця A(n,n),n&lt;=15 . Розробити шаблонну функцію побудови вектора B,i=1,2,n, за правилом:B дорівнює ...

Инстанцирование шаблона - C++
Существует шаблон следующего вида: template&lt;class T, int size&gt; void foo(T (&amp;array)) { cout &lt;&lt; size &lt;&lt; endl; } И следующий...


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

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

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