Bonjour,
j'ai un problème que je ne comprends pas : 2 classes templates
héritent d'une classe mère template, et les classes filles ne sembent
pas avoir accès aux variables membres de la classe mère.
Je suis perplexe, où me trompè-je? Merci pour votre aide.
Le code (le compilateur râle parce qu'il ne trouve pas '_points' dans
les classes filles) :
Bonjour,
j'ai un problème que je ne comprends pas : 2 classes templates
héritent d'une classe mère template, et les classes filles ne sembent
pas avoir accès aux variables membres de la classe mère.
Je suis perplexe, où me trompè-je? Merci pour votre aide.
Le code (le compilateur râle parce qu'il ne trouve pas '_points' dans
les classes filles) :
Bonjour,
j'ai un problème que je ne comprends pas : 2 classes templates
héritent d'une classe mère template, et les classes filles ne sembent
pas avoir accès aux variables membres de la classe mère.
Je suis perplexe, où me trompè-je? Merci pour votre aide.
Le code (le compilateur râle parce qu'il ne trouve pas '_points' dans
les classes filles) :
writes:Bonjour,
j'ai un problème que je ne comprends pas : 2 classes templates
héritent d'une classe mère template, et les classes filles n e sembent
pas avoir accès aux variables membres de la classe mère.
Je suis perplexe, où me trompè-je? Merci pour votre aide.
Le code (le compilateur râle parce qu'il ne trouve pas '_points' dans
les classes filles) :
En ajoutant this->, ce qui suit compile bien avec gcc (Gentoo 4.5.3-r2
p1.1, pie-0.4.7) 4.5.3, et s'éxécute bien.
Je suis également surpris que this-> soit nécesssaireâ¦
gourdi@laposte.net writes:
Bonjour,
j'ai un problème que je ne comprends pas : 2 classes templates
héritent d'une classe mère template, et les classes filles n e sembent
pas avoir accès aux variables membres de la classe mère.
Je suis perplexe, où me trompè-je? Merci pour votre aide.
Le code (le compilateur râle parce qu'il ne trouve pas '_points' dans
les classes filles) :
En ajoutant this->, ce qui suit compile bien avec gcc (Gentoo 4.5.3-r2
p1.1, pie-0.4.7) 4.5.3, et s'éxécute bien.
Je suis également surpris que this-> soit nécesssaireâ¦
writes:Bonjour,
j'ai un problème que je ne comprends pas : 2 classes templates
héritent d'une classe mère template, et les classes filles n e sembent
pas avoir accès aux variables membres de la classe mère.
Je suis perplexe, où me trompè-je? Merci pour votre aide.
Le code (le compilateur râle parce qu'il ne trouve pas '_points' dans
les classes filles) :
En ajoutant this->, ce qui suit compile bien avec gcc (Gentoo 4.5.3-r2
p1.1, pie-0.4.7) 4.5.3, et s'éxécute bien.
Je suis également surpris que this-> soit nécesssaireâ¦
Pour plus de détails là -dessus, lire dans Effective C++ de Scott Meyers :
Item 43 : Know how to access names in templatized base class
Pour plus de détails là -dessus, lire dans Effective C++ de Scott Meyers :
Item 43 : Know how to access names in templatized base class
Pour plus de détails là -dessus, lire dans Effective C++ de Scott Meyers :
Item 43 : Know how to access names in templatized base class
Le 22/05/2012 16:52, Pascal J. Bourguignon a écrit :
>
>> Bonjour,
>>
>> j'ai un problème que je ne comprends pas : 2 classes templates
>> héritent d'une classe mère template, et les classes filles ne semb ent
>> pas avoir accès aux variables membres de la classe mère.
>>
>> Je suis perplexe, où me trompè-je? Merci pour votre aide.
>>
>> Le code (le compilateur râle parce qu'il ne trouve pas '_points' dan s
>> les classes filles) :
>
> En ajoutant this->, ce qui suit compile bien avec gcc (Gentoo 4.5.3-r2
> p1.1, pie-0.4.7) 4.5.3, et s'éxécute bien.
>
> Je suis également surpris que this-> soit nécesssaire
>
Pour plus de détails là-dessus, lire dans Effective C++ de Scott Meye rs :
Item 43 : Know how to access names in templatized base class
Le 22/05/2012 16:52, Pascal J. Bourguignon a écrit :
>
>> Bonjour,
>>
>> j'ai un problème que je ne comprends pas : 2 classes templates
>> héritent d'une classe mère template, et les classes filles ne semb ent
>> pas avoir accès aux variables membres de la classe mère.
>>
>> Je suis perplexe, où me trompè-je? Merci pour votre aide.
>>
>> Le code (le compilateur râle parce qu'il ne trouve pas '_points' dan s
>> les classes filles) :
>
> En ajoutant this->, ce qui suit compile bien avec gcc (Gentoo 4.5.3-r2
> p1.1, pie-0.4.7) 4.5.3, et s'éxécute bien.
>
> Je suis également surpris que this-> soit nécesssaire
>
Pour plus de détails là-dessus, lire dans Effective C++ de Scott Meye rs :
Item 43 : Know how to access names in templatized base class
Le 22/05/2012 16:52, Pascal J. Bourguignon a écrit :
>
>> Bonjour,
>>
>> j'ai un problème que je ne comprends pas : 2 classes templates
>> héritent d'une classe mère template, et les classes filles ne semb ent
>> pas avoir accès aux variables membres de la classe mère.
>>
>> Je suis perplexe, où me trompè-je? Merci pour votre aide.
>>
>> Le code (le compilateur râle parce qu'il ne trouve pas '_points' dan s
>> les classes filles) :
>
> En ajoutant this->, ce qui suit compile bien avec gcc (Gentoo 4.5.3-r2
> p1.1, pie-0.4.7) 4.5.3, et s'éxécute bien.
>
> Je suis également surpris que this-> soit nécesssaire
>
Pour plus de détails là-dessus, lire dans Effective C++ de Scott Meye rs :
Item 43 : Know how to access names in templatized base class
Bonjour,
j'ai un problème que je ne comprends pas : 2 classes templates
héritent d'une classe mère template, et les classes filles ne sembent
pas avoir accès aux variables membres de la classe mère.
Je suis perplexe, où me trompè-je? Merci pour votre aide.
Bonjour,
j'ai un problème que je ne comprends pas : 2 classes templates
héritent d'une classe mère template, et les classes filles ne sembent
pas avoir accès aux variables membres de la classe mère.
Je suis perplexe, où me trompè-je? Merci pour votre aide.
Bonjour,
j'ai un problème que je ne comprends pas : 2 classes templates
héritent d'une classe mère template, et les classes filles ne sembent
pas avoir accès aux variables membres de la classe mère.
Je suis perplexe, où me trompè-je? Merci pour votre aide.
In article, ptyxs wrote:Pour plus de détails là-dessus, lire dans Effective C++ de Scott M eyers :
Item 43 : Know how to access names in templatized base class
Quelle edition ? c'est pas l'Item 43 dans ma 2e edition, en tout cas.
In article<4FBBAD88.7080708@gmail.com>, ptyxs<ptyxs@free.fr> wrote:
Pour plus de détails là-dessus, lire dans Effective C++ de Scott M eyers :
Item 43 : Know how to access names in templatized base class
Quelle edition ? c'est pas l'Item 43 dans ma 2e edition, en tout cas.
In article, ptyxs wrote:Pour plus de détails là-dessus, lire dans Effective C++ de Scott M eyers :
Item 43 : Know how to access names in templatized base class
Quelle edition ? c'est pas l'Item 43 dans ma 2e edition, en tout cas.
writes:
> Bonjour,
> j'ai un problème que je ne comprends pas : 2 classes templates
> héritent d'une classe mère template, et les classes filles ne sembe nt
> pas avoir accès aux variables membres de la classe mère.
> Je suis perplexe, où me trompè-je? Merci pour votre aide.
> Le code (le compilateur râle parce qu'il ne trouve pas '_points' dans
> les classes filles) :
En ajoutant this->, ce qui suit compile bien avec gcc (Gentoo 4.5.3-r2
p1.1, pie-0.4.7) 4.5.3, et s'éxécute bien.
Je suis également surpris que this-> soit nécesssaire
------------------------------------------------------------------------
#include <vector>
template <typename T>
class ggo_set2
{
public:
ggo_set2(){}
};
template <typename T>
class ggo_curve_abc
{
public:
virtual T evaluate(T x) const = 0;
protected:
std::vector<ggo_set2<T> > _points;
};
template <typename T>
class ggo_linear_curve : public ggo_curve_abc<T>
{
public:
virtual T evaluate(T x) const;
};
template <typename T>
class ggo_cubic_curve : public ggo_curve_abc<T>
{
public:
virtual T evaluate(T x) const;
};
template <typename T>
T ggo_linear_curve<T>::evaluate(T x) const
{
if (this->_points.size() < 2)
{
return T(0);
}
// <snip>
}
template <typename T>
T ggo_cubic_curve<T>::evaluate(T x) const
{
if (this->_points.size() < 4)
{
return T(0);
}
// <snip>
}
int main(){
ggo_linear_curve<int> c;
c.evaluate(42);
return(0);
}
------------------------------------------------------------------------
--
__Pascal Bourguignon__ http://www. informatimago.com/
A bad day in () is better than a good day in {}.
gou...@laposte.net writes:
> Bonjour,
> j'ai un problème que je ne comprends pas : 2 classes templates
> héritent d'une classe mère template, et les classes filles ne sembe nt
> pas avoir accès aux variables membres de la classe mère.
> Je suis perplexe, où me trompè-je? Merci pour votre aide.
> Le code (le compilateur râle parce qu'il ne trouve pas '_points' dans
> les classes filles) :
En ajoutant this->, ce qui suit compile bien avec gcc (Gentoo 4.5.3-r2
p1.1, pie-0.4.7) 4.5.3, et s'éxécute bien.
Je suis également surpris que this-> soit nécesssaire
------------------------------------------------------------------------
#include <vector>
template <typename T>
class ggo_set2
{
public:
ggo_set2(){}
};
template <typename T>
class ggo_curve_abc
{
public:
virtual T evaluate(T x) const = 0;
protected:
std::vector<ggo_set2<T> > _points;
};
template <typename T>
class ggo_linear_curve : public ggo_curve_abc<T>
{
public:
virtual T evaluate(T x) const;
};
template <typename T>
class ggo_cubic_curve : public ggo_curve_abc<T>
{
public:
virtual T evaluate(T x) const;
};
template <typename T>
T ggo_linear_curve<T>::evaluate(T x) const
{
if (this->_points.size() < 2)
{
return T(0);
}
// <snip>
}
template <typename T>
T ggo_cubic_curve<T>::evaluate(T x) const
{
if (this->_points.size() < 4)
{
return T(0);
}
// <snip>
}
int main(){
ggo_linear_curve<int> c;
c.evaluate(42);
return(0);
}
------------------------------------------------------------------------
--
__Pascal Bourguignon__ http://www. informatimago.com/
A bad day in () is better than a good day in {}.
writes:
> Bonjour,
> j'ai un problème que je ne comprends pas : 2 classes templates
> héritent d'une classe mère template, et les classes filles ne sembe nt
> pas avoir accès aux variables membres de la classe mère.
> Je suis perplexe, où me trompè-je? Merci pour votre aide.
> Le code (le compilateur râle parce qu'il ne trouve pas '_points' dans
> les classes filles) :
En ajoutant this->, ce qui suit compile bien avec gcc (Gentoo 4.5.3-r2
p1.1, pie-0.4.7) 4.5.3, et s'éxécute bien.
Je suis également surpris que this-> soit nécesssaire
------------------------------------------------------------------------
#include <vector>
template <typename T>
class ggo_set2
{
public:
ggo_set2(){}
};
template <typename T>
class ggo_curve_abc
{
public:
virtual T evaluate(T x) const = 0;
protected:
std::vector<ggo_set2<T> > _points;
};
template <typename T>
class ggo_linear_curve : public ggo_curve_abc<T>
{
public:
virtual T evaluate(T x) const;
};
template <typename T>
class ggo_cubic_curve : public ggo_curve_abc<T>
{
public:
virtual T evaluate(T x) const;
};
template <typename T>
T ggo_linear_curve<T>::evaluate(T x) const
{
if (this->_points.size() < 2)
{
return T(0);
}
// <snip>
}
template <typename T>
T ggo_cubic_curve<T>::evaluate(T x) const
{
if (this->_points.size() < 4)
{
return T(0);
}
// <snip>
}
int main(){
ggo_linear_curve<int> c;
c.evaluate(42);
return(0);
}
------------------------------------------------------------------------
--
__Pascal Bourguignon__ http://www. informatimago.com/
A bad day in () is better than a good day in {}.
writes:Bonjour,
j'ai un problème que je ne comprends pas : 2 classes templates
C'est pas classes templates mais template de classe (autrement dit ce ne
sont pas des classes mais des templates pour faire des classes; les
instantiations sont bien des classes; en anglais dans "class template",
class est le qualicatif et template le nom qualifié; on a utilisé template
class -- qui se traduit bien par classe template -- pour ce qu'on appelle
maintenant instantiations, on a arrêté car la nuance entre class template
et template class est un peu trop subtile).héritent d'une classe mère template, et les classes filles ne sembent
pas avoir accès aux variables membres de la classe mère.
Je suis perplexe, où me trompè-je? Merci pour votre aide.
Les noms dans un template sont recherchés à deux moments différents suivant
leur sorte (keyword: two phases name lookup)
Ceux qui ne dépendent pas visiblement d'un paramètre du template sont
recherchés uniquement à la définition du template et ne peuvent *jamais*
trouver des définitions qui dépendent de la valeur d'un paramètre du
template.
Ceux qui dépendent visiblement de la définition d'un paramètre du template
sont recherchés à l'instantiation (et naturellement leur définition peut
dépendre de celui-ci)
Un nom comme _points ne dépend pas visiblement d'un paramètre template et
on ne va pas chercher les membres des classes de base qui sont des
instantiations avec des paramètres du template. this->_points rend le nom
dépendant et il est donc cherché à la définition.
gourdi@laposte.net writes:
Bonjour,
j'ai un problème que je ne comprends pas : 2 classes templates
C'est pas classes templates mais template de classe (autrement dit ce ne
sont pas des classes mais des templates pour faire des classes; les
instantiations sont bien des classes; en anglais dans "class template",
class est le qualicatif et template le nom qualifié; on a utilisé template
class -- qui se traduit bien par classe template -- pour ce qu'on appelle
maintenant instantiations, on a arrêté car la nuance entre class template
et template class est un peu trop subtile).
héritent d'une classe mère template, et les classes filles ne sembent
pas avoir accès aux variables membres de la classe mère.
Je suis perplexe, où me trompè-je? Merci pour votre aide.
Les noms dans un template sont recherchés à deux moments différents suivant
leur sorte (keyword: two phases name lookup)
Ceux qui ne dépendent pas visiblement d'un paramètre du template sont
recherchés uniquement à la définition du template et ne peuvent *jamais*
trouver des définitions qui dépendent de la valeur d'un paramètre du
template.
Ceux qui dépendent visiblement de la définition d'un paramètre du template
sont recherchés à l'instantiation (et naturellement leur définition peut
dépendre de celui-ci)
Un nom comme _points ne dépend pas visiblement d'un paramètre template et
on ne va pas chercher les membres des classes de base qui sont des
instantiations avec des paramètres du template. this->_points rend le nom
dépendant et il est donc cherché à la définition.
writes:Bonjour,
j'ai un problème que je ne comprends pas : 2 classes templates
C'est pas classes templates mais template de classe (autrement dit ce ne
sont pas des classes mais des templates pour faire des classes; les
instantiations sont bien des classes; en anglais dans "class template",
class est le qualicatif et template le nom qualifié; on a utilisé template
class -- qui se traduit bien par classe template -- pour ce qu'on appelle
maintenant instantiations, on a arrêté car la nuance entre class template
et template class est un peu trop subtile).héritent d'une classe mère template, et les classes filles ne sembent
pas avoir accès aux variables membres de la classe mère.
Je suis perplexe, où me trompè-je? Merci pour votre aide.
Les noms dans un template sont recherchés à deux moments différents suivant
leur sorte (keyword: two phases name lookup)
Ceux qui ne dépendent pas visiblement d'un paramètre du template sont
recherchés uniquement à la définition du template et ne peuvent *jamais*
trouver des définitions qui dépendent de la valeur d'un paramètre du
template.
Ceux qui dépendent visiblement de la définition d'un paramètre du template
sont recherchés à l'instantiation (et naturellement leur définition peut
dépendre de celui-ci)
Un nom comme _points ne dépend pas visiblement d'un paramètre template et
on ne va pas chercher les membres des classes de base qui sont des
instantiations avec des paramètres du template. this->_points rend le nom
dépendant et il est donc cherché à la définition.
Un nom comme _points ne dépend pas visiblement d'un paramètre template et
on ne va pas chercher les membres des classes de base qui sont des
instantiations avec des paramètres du template. this->_points rend le nom
dépendant et il est donc cherché à la définition.
C'est clair!
Un nom comme _points ne dépend pas visiblement d'un paramètre template et
on ne va pas chercher les membres des classes de base qui sont des
instantiations avec des paramètres du template. this->_points rend le nom
dépendant et il est donc cherché à la définition.
C'est clair!
Un nom comme _points ne dépend pas visiblement d'un paramètre template et
on ne va pas chercher les membres des classes de base qui sont des
instantiations avec des paramètres du template. this->_points rend le nom
dépendant et il est donc cherché à la définition.
C'est clair!