A
AG
Bonjour,
voici mon bout de code (toujours le même en amélioré). Ma question est la
suivante :
combien de tableau tab ai-je ? Moi j'en veux que deux. Un pour myA1 et un
pour myA2. Le fait que je sois obligé de spécialiser l'instanciation du
tableau statique tab me fait penser que j'aurais 12 tableau en tout. Est-ce
bien ça ?
D'avance merci.
Alexandre.
#define D 5
const int L=10;
template <class T,bool S,int N=0> class A
{
static T tab[D*L];
A<T,S,N+1> next;
public:
void f(void)
{
for(int i=0;i<L;i++) tab[N*L+i+1]+=tab[N*L+i];
next.f();
};
};
template<class T,bool S> class A<T,S,D>
{
static T tab[D*L];
public:
void f(void)
{
for(int i=0;i<S;i++) tab[D*L+i+1]+=tab[D*L+i];
};
};
template<class T, bool S,int N>
T A<T,S,N>::tab[D*L]={0};
template<class T, bool S>
T A<T,S,D>::tab[D*L]={0};
int main(void)
{
A<int,true> myA1;
A<int,false> myA2
myA1.f();
myA2.f();
}
voici mon bout de code (toujours le même en amélioré). Ma question est la
suivante :
combien de tableau tab ai-je ? Moi j'en veux que deux. Un pour myA1 et un
pour myA2. Le fait que je sois obligé de spécialiser l'instanciation du
tableau statique tab me fait penser que j'aurais 12 tableau en tout. Est-ce
bien ça ?
D'avance merci.
Alexandre.
#define D 5
const int L=10;
template <class T,bool S,int N=0> class A
{
static T tab[D*L];
A<T,S,N+1> next;
public:
void f(void)
{
for(int i=0;i<L;i++) tab[N*L+i+1]+=tab[N*L+i];
next.f();
};
};
template<class T,bool S> class A<T,S,D>
{
static T tab[D*L];
public:
void f(void)
{
for(int i=0;i<S;i++) tab[D*L+i+1]+=tab[D*L+i];
};
};
template<class T, bool S,int N>
T A<T,S,N>::tab[D*L]={0};
template<class T, bool S>
T A<T,S,D>::tab[D*L]={0};
int main(void)
{
A<int,true> myA1;
A<int,false> myA2
myA1.f();
myA2.f();
}