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

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

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

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

30.11.2013, 22:07. Просмотров 197. Ответов 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();
     ...
}
Разумеется, это не работает. Подскажите, как правильно двумерный массив задать и передать в параметры шаблонного класса можно?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.11.2013, 22:07     Параметры шаблона
Посмотрите здесь:

Параметры шаблона - 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++
Всем доброго дня !! Подскажите пожалуйста в чем может быть проблема ? когда блокирую 64 строку - то все нормально ((( при...

Создание шаблона - C++
Задача - сделать шаблон контейнера. То до чего додумался: #include &quot;stdafx.h&quot; #ifndef _TEMPL_H #define _TEMPL_H ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 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);
}
Nikoys
26 / 26 / 6
Регистрация: 29.12.2010
Сообщений: 90
30.11.2013, 22:37  [ТС]     Параметры шаблона #3
Jupiter, а если мне нужна невоидовская функция? И я собираюсь возвращать матрицу? Тут много проблем тоже у меня
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.11.2013, 22:43     Параметры шаблона
Еще ссылки по теме:

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

Инстанцирование шаблона - C++
Есть шаблонная очередь с использованием vector Как инстанцировать для своего класса, представляющего строку, изготовленную из...

Ошибка шаблона - C++
Здравствуйте. Для шаблонного класса надо определить, что не использован тип void: template&lt;typename Type&gt; struct IsNoVoid { ...

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


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

Или воспользуйтесь поиском по форуму:
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 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';
        }
    }
Yandex
Объявления
30.11.2013, 22:43     Параметры шаблона
Ответ Создать тему
Опции темы

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