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

C++

Войти
Регистрация
Восстановить пароль
 
Валерий Герасим
4 / 4 / 2
Регистрация: 07.07.2013
Сообщений: 109
#1

Шаблоны функци в классе - C++

08.09.2016, 16:52. Просмотров 213. Ответов 1
Метки нет (Все метки)

Создал следующий шаблон функции:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;
template<int N>
    int fibonacci(){
        return fibonacci<N-1>() + fibonacci<N-2>();
    }
    template<>
    int fibonacci<1>(){
        return 1;
    }
    template<>
    int fibonacci<2>(){
        return 1;
    }
 
int main(){
cout << fibonacci<25>() << endl;
    return 0;
}
Все работает.

Далее попытался создать почти такой же код:
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
#include <iostream>
using namespace std;
class NewFib{
public:
    template<int N>
    int fibonacci(){
        return fibonacci<N-1>() + fibonacci<N-2>();
    }
    template<>
    int fibonacci<1>(){
        return 1;
    }
    template<>
    int fibonacci<2>(){
        return 1;
    }
 
};
 
int main(){
 
NewFib new_fib;
    cout << new_fib.fibonacci<10>() << endl;
    return 0;
}
Но в этот раз вылезает ошибка компиляции

fatal error: template instantiation depth exceeds maximum of 900 (use -ftemplate-depth= to increase the maximum)
return fibonacci<N-1>() + fibonacci<N-2>();

Что мне делать,заранее спасибо,простите за тупость...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.09.2016, 16:52     Шаблоны функци в классе
Посмотрите здесь:

Вывести на экран отрицательные значения функци - C++
Вывести на экран отрицательные значения функции (формула) y=4x(5-{3x}^{2}) при изменении х от 1 до 2 с шагом 0,1.

vs 2010 ругается на все библиотечные функци string.h - C++
ВСем доброго времени суток, вот такая проблема вот ошибка c:\users\илья\desktop\vs\крипто\крипто\крипто.cpp(111): warning C4996:...

Задачу создать 2-мя способами:1) передавать результат работы подпрограммы через результат, возвращаемый функци - C++
Здравствуйте, дорогие форумчане! Будьте добры, помогите не совсем опытному юзеру разобраться с небольшим непониманием : дано условие (см....

Вычислить значение заданной функци на данном интервале с заданным шагом. Осуществить вывод значений аргумента и результатов вычислений значений функ - C++
Вычислить значение заданной функции y=f(x) на данном интервале с заданным шагом. Осуществить вывод значений аргумента и результатов...

Шаблоны C++ - C++
Написал template на С++, но он нифига не компилица, пишет мол типа не могу string в int преобразовать в строчке int out_param = (int)param;...

шаблоны - Visual C++
стоит ли попробовать написать что-то на курсач по шаблонным выражениям? Посоветуйте.

Шаблоны - C++
Не пойму что я неправильно делаю. Как не переделывал, всё равно не получалось. Может кто сможет чем помочь. А задача следующая-надо было...

Шаблоны - C++
Я разбираюсь с ООП в С++ и застрял на шаблонах, будьте добры приведите пример кода, к примеру там.... вес машины и шаблон,(ну вообщем на...

Шаблоны в C++ - C++
Доброго времени суток! Начал разбираться что такое шаблон и с чем его едят. Загуглил, вставил код из википедии. Ошибка. ...

Шаблоны - C++
Так делать типо нельзя ? template&lt;class T, int maxPrint = 10&gt; void PrintAll(std::vector&lt;T&gt;&amp; forPrint) { ...

Шаблоны - C++
// Шаблоны.cpp: определяет точку входа для консольного приложения. // #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace...

Шаблоны - C++
#include &lt;iostream&gt; using namespace std; template &lt;class T&gt; class Vector{ int size; int capacity; T* data; ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
notAll
390 / 111 / 23
Регистрация: 27.05.2016
Сообщений: 286
Завершенные тесты: 2
08.09.2016, 23:29     Шаблоны функци в классе #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
struct NewFib
{
    template <int N>
    int fibonacci() {
        return fibonacci<N-1>() + fibonacci<N-2>();
    }
};
 
template <>
int NewFib::fibonacci<1>() {
    return 1;
}
 
template <>
int NewFib::fibonacci<2>() {
    return 1;
}
 
int main()
{
    NewFib new_fib;
    cout << new_fib.fibonacci<10>() << endl;
}
Ответ Создать тему
Опции темы

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