Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Ivan Vecerina
"Antoine" wrote in message news:3fab5931$0$27045$ | Je n'arrive pas a deriver la classe CString. | J'ecris : | | class CStr : public CString ... | Je n'ai pas acces aux membres de CString....
Peut-être les membres de CString sont-ils privés? C'est alors tout-à-fait normal, et CString n'est probablement pas conçue pour être une classe de base (e.g. son destructeur n'est sans doute pas virtual).
| En fait je veux juste ajouter deux fonctions membres a la classe CString.
Pourquoi ne pas implémenter celles-ci comme des fonctions libres/globales ? Quelles sont ces opérations?
Ivan -- http://ivan.vecerina.com
"Antoine" <45846@c46456.fr> wrote in message
news:3fab5931$0$27045$626a54ce@news.free.fr...
| Je n'arrive pas a deriver la classe CString.
| J'ecris :
|
| class CStr : public CString
...
| Je n'ai pas acces aux membres de CString....
Peut-être les membres de CString sont-ils privés?
C'est alors tout-à-fait normal, et CString n'est probablement
pas conçue pour être une classe de base (e.g. son destructeur
n'est sans doute pas virtual).
| En fait je veux juste ajouter deux fonctions membres a la classe CString.
Pourquoi ne pas implémenter celles-ci
comme des fonctions libres/globales ?
Quelles sont ces opérations?
"Antoine" wrote in message news:3fab5931$0$27045$ | Je n'arrive pas a deriver la classe CString. | J'ecris : | | class CStr : public CString ... | Je n'ai pas acces aux membres de CString....
Peut-être les membres de CString sont-ils privés? C'est alors tout-à-fait normal, et CString n'est probablement pas conçue pour être une classe de base (e.g. son destructeur n'est sans doute pas virtual).
| En fait je veux juste ajouter deux fonctions membres a la classe CString.
Pourquoi ne pas implémenter celles-ci comme des fonctions libres/globales ? Quelles sont ces opérations?
Ivan -- http://ivan.vecerina.com
Antoine
En fait je voudrais ajouter une fonction du genre Replace, mais plus complexe.
"Ivan Vecerina" a écrit dans le message de news: boga1u$dd0$
"Antoine" wrote in message news:3fab5931$0$27045$ | Je n'arrive pas a deriver la classe CString. | J'ecris : | | class CStr : public CString ... | Je n'ai pas acces aux membres de CString....
Peut-être les membres de CString sont-ils privés? C'est alors tout-à-fait normal, et CString n'est probablement pas conçue pour être une classe de base (e.g. son destructeur n'est sans doute pas virtual).
| En fait je veux juste ajouter deux fonctions membres a la classe CString.
Pourquoi ne pas implémenter celles-ci comme des fonctions libres/globales ? Quelles sont ces opérations?
Ivan -- http://ivan.vecerina.com
En fait je voudrais ajouter une fonction du genre Replace, mais
plus complexe.
"Ivan Vecerina" <please_use_web_form@ivan.vecerina.com> a écrit dans le
message de news: boga1u$dd0$1@newshispeed.ch...
"Antoine" <45846@c46456.fr> wrote in message
news:3fab5931$0$27045$626a54ce@news.free.fr...
| Je n'arrive pas a deriver la classe CString.
| J'ecris :
|
| class CStr : public CString
...
| Je n'ai pas acces aux membres de CString....
Peut-être les membres de CString sont-ils privés?
C'est alors tout-à-fait normal, et CString n'est probablement
pas conçue pour être une classe de base (e.g. son destructeur
n'est sans doute pas virtual).
| En fait je veux juste ajouter deux fonctions membres a la classe
CString.
Pourquoi ne pas implémenter celles-ci
comme des fonctions libres/globales ?
Quelles sont ces opérations?
En fait je voudrais ajouter une fonction du genre Replace, mais plus complexe.
"Ivan Vecerina" a écrit dans le message de news: boga1u$dd0$
"Antoine" wrote in message news:3fab5931$0$27045$ | Je n'arrive pas a deriver la classe CString. | J'ecris : | | class CStr : public CString ... | Je n'ai pas acces aux membres de CString....
Peut-être les membres de CString sont-ils privés? C'est alors tout-à-fait normal, et CString n'est probablement pas conçue pour être une classe de base (e.g. son destructeur n'est sans doute pas virtual).
| En fait je veux juste ajouter deux fonctions membres a la classe CString.
Pourquoi ne pas implémenter celles-ci comme des fonctions libres/globales ? Quelles sont ces opérations?
Ivan -- http://ivan.vecerina.com
Patrick Mézard
"Ivan Vecerina" a écrit dans le message de news: boga1u$dd0$
"Antoine" wrote in message news:3fab5931$0$27045$ | Je n'arrive pas a deriver la classe CString. | J'ecris : | | class CStr : public CString ... | Je n'ai pas acces aux membres de CString....
Peut-être les membres de CString sont-ils privés? C'est alors tout-à-fait normal, et CString n'est probablement pas conçue pour être une classe de base (e.g. son destructeur n'est sans doute pas virtual).
| En fait je veux juste ajouter deux fonctions membres a la classe CString.
Pourquoi ne pas implémenter celles-ci comme des fonctions libres/globales ? Quelles sont ces opérations?
"Antoine" a écrit dans le message de news:3fabc922$0$27031$
En fait je voudrais ajouter une fonction du genre Replace, mais plus complexe.
Et tu ne peux pas écrire le replace en terme de GetBuffer/ReleaseBuffer ?
A partir du moment où tu peux écrire une fonction ne se basant que sur l'interface publique d'une classe, il n'y a pas de raison franche pour en faire une méthode de cette classe. L'inverse est même plutôt préférable en terme de maintenabilité.
Tu devrais lire au moins les deux premiers paragraphes de : http://www.gotw.ca/publications/mill02.htm ("What's in a Class - The Interface Principle")
Patrick Mézard
"Ivan Vecerina" <please_use_web_form@ivan.vecerina.com> a écrit dans le
message de news: boga1u$dd0$1@newshispeed.ch...
"Antoine" <45846@c46456.fr> wrote in message
news:3fab5931$0$27045$626a54ce@news.free.fr...
| Je n'arrive pas a deriver la classe CString.
| J'ecris :
|
| class CStr : public CString
...
| Je n'ai pas acces aux membres de CString....
Peut-être les membres de CString sont-ils privés?
C'est alors tout-à-fait normal, et CString n'est probablement
pas conçue pour être une classe de base (e.g. son destructeur
n'est sans doute pas virtual).
| En fait je veux juste ajouter deux fonctions membres a la classe
CString.
Pourquoi ne pas implémenter celles-ci
comme des fonctions libres/globales ?
Quelles sont ces opérations?
"Antoine" <45846@c46456.fr> a écrit dans le message de
news:3fabc922$0$27031$626a54ce@news.free.fr...
En fait je voudrais ajouter une fonction du genre Replace, mais
plus complexe.
Et tu ne peux pas écrire le replace en terme de GetBuffer/ReleaseBuffer ?
A partir du moment où tu peux écrire une fonction ne se basant que sur
l'interface publique d'une classe, il n'y a pas de raison franche pour en
faire une méthode de cette classe. L'inverse est même plutôt préférable en
terme de maintenabilité.
Tu devrais lire au moins les deux premiers paragraphes de :
http://www.gotw.ca/publications/mill02.htm ("What's in a Class - The
Interface Principle")
"Ivan Vecerina" a écrit dans le message de news: boga1u$dd0$
"Antoine" wrote in message news:3fab5931$0$27045$ | Je n'arrive pas a deriver la classe CString. | J'ecris : | | class CStr : public CString ... | Je n'ai pas acces aux membres de CString....
Peut-être les membres de CString sont-ils privés? C'est alors tout-à-fait normal, et CString n'est probablement pas conçue pour être une classe de base (e.g. son destructeur n'est sans doute pas virtual).
| En fait je veux juste ajouter deux fonctions membres a la classe CString.
Pourquoi ne pas implémenter celles-ci comme des fonctions libres/globales ? Quelles sont ces opérations?
"Antoine" a écrit dans le message de news:3fabc922$0$27031$
En fait je voudrais ajouter une fonction du genre Replace, mais plus complexe.
Et tu ne peux pas écrire le replace en terme de GetBuffer/ReleaseBuffer ?
A partir du moment où tu peux écrire une fonction ne se basant que sur l'interface publique d'une classe, il n'y a pas de raison franche pour en faire une méthode de cette classe. L'inverse est même plutôt préférable en terme de maintenabilité.
Tu devrais lire au moins les deux premiers paragraphes de : http://www.gotw.ca/publications/mill02.htm ("What's in a Class - The Interface Principle")
Patrick Mézard
Yalbrieux
Bonsoir,
Curieux car sans être spécialiste j'ai fais ça sans problème sous VC++ Avec une petite ruse : Dans le .h class Cxxx::public CString { public: Cxxx( ) ; virtual ~Cxxx( ) ; CString* pcb ; // maintenant les nouvelles fonctions ... etc. } Dans le .cpp Cxxx::Cxxx( ) { pcb=this ; // la mémoire hérite du CString de base pcb->Empty() ; ... } ... etc.
Ca marche impec. A+ Yves
"Antoine" a écrit dans le message news: 3fab5931$0$27045$
Bonjour,
Je n'arrive pas a deriver la classe CString.
Bonsoir,
Curieux car sans être spécialiste j'ai fais ça sans problème sous VC++
Avec une petite ruse :
Dans le .h
class Cxxx::public CString
{
public:
Cxxx( ) ;
virtual ~Cxxx( ) ;
CString* pcb ;
// maintenant les nouvelles fonctions
... etc.
}
Dans le .cpp
Cxxx::Cxxx( )
{
pcb=this ; // la mémoire hérite du CString de base
pcb->Empty() ;
...
}
... etc.
Ca marche impec.
A+
Yves
"Antoine" <45846@c46456.fr> a écrit dans le message news:
3fab5931$0$27045$626a54ce@news.free.fr...
Curieux car sans être spécialiste j'ai fais ça sans problème sous VC++ Avec une petite ruse : Dans le .h class Cxxx::public CString { public: Cxxx( ) ; virtual ~Cxxx( ) ; CString* pcb ; // maintenant les nouvelles fonctions ... etc. } Dans le .cpp Cxxx::Cxxx( ) { pcb=this ; // la mémoire hérite du CString de base pcb->Empty() ; ... } ... etc.
Ca marche impec. A+ Yves
"Antoine" a écrit dans le message news: 3fab5931$0$27045$
Bonjour,
Je n'arrive pas a deriver la classe CString.
Antoine
Merci !! Super cette astuce
"Yalbrieux" a écrit dans le message de news: bogu03$ttn$
Bonsoir,
Curieux car sans être spécialiste j'ai fais ça sans problème sous VC++ Avec une petite ruse : Dans le .h class Cxxx::public CString { public: Cxxx( ) ; virtual ~Cxxx( ) ; CString* pcb ; // maintenant les nouvelles fonctions ... etc. } Dans le .cpp Cxxx::Cxxx( ) { pcb=this ; // la mémoire hérite du CString de base pcb->Empty() ; ... } ... etc.
Ca marche impec. A+ Yves
"Antoine" a écrit dans le message news: 3fab5931$0$27045$
Bonjour,
Je n'arrive pas a deriver la classe CString.
Merci !!
Super cette astuce
"Yalbrieux" <yalbrieux@wanadoo.fr> a écrit dans le message de news:
bogu03$ttn$1@news-reader2.wanadoo.fr...
Bonsoir,
Curieux car sans être spécialiste j'ai fais ça sans problème sous VC++
Avec une petite ruse :
Dans le .h
class Cxxx::public CString
{
public:
Cxxx( ) ;
virtual ~Cxxx( ) ;
CString* pcb ;
// maintenant les nouvelles fonctions
... etc.
}
Dans le .cpp
Cxxx::Cxxx( )
{
pcb=this ; // la mémoire hérite du CString de base
pcb->Empty() ;
...
}
... etc.
Ca marche impec.
A+
Yves
"Antoine" <45846@c46456.fr> a écrit dans le message news:
3fab5931$0$27045$626a54ce@news.free.fr...
"Yalbrieux" a écrit dans le message de news: bogu03$ttn$
Bonsoir,
Curieux car sans être spécialiste j'ai fais ça sans problème sous VC++ Avec une petite ruse : Dans le .h class Cxxx::public CString { public: Cxxx( ) ; virtual ~Cxxx( ) ; CString* pcb ; // maintenant les nouvelles fonctions ... etc. } Dans le .cpp Cxxx::Cxxx( ) { pcb=this ; // la mémoire hérite du CString de base pcb->Empty() ; ... } ... etc.
Ca marche impec. A+ Yves
"Antoine" a écrit dans le message news: 3fab5931$0$27045$