qui peut me dire si il y a une différence de vitesse entre les accés au
membres (publiques ou privés) d'une classe et ceux d'une struct ?
Stroustrup dans sa "bible" nous dit bien qu'une struct est une classe
allégée, un structure de données plus qu'un type mais ne parle pas de la
façon dont c'est compilé.
qui peut me dire si il y a une différence de vitesse entre les accés au
membres (publiques ou privés) d'une classe et ceux d'une struct ?
Stroustrup dans sa "bible" nous dit bien qu'une struct est une classe
allégée, un structure de données plus qu'un type mais ne parle pas de la
façon dont c'est compilé.
qui peut me dire si il y a une différence de vitesse entre les accés au
membres (publiques ou privés) d'une classe et ceux d'une struct ?
Stroustrup dans sa "bible" nous dit bien qu'une struct est une classe
allégée, un structure de données plus qu'un type mais ne parle pas de la
façon dont c'est compilé.
YaNn wrote:qui peut me dire si il y a une différence de vitesse entre les accés au
membres (publiques ou privés) d'une classe et ceux d'une struct ?
Il faudrait que tu me donnes la ref, mais j'aurais tendance à dire
qu'il faut distinguer deux choses: une "structure" à la C, avec
le mot clef struct et que des champs (publics), pas de méthode,
et une classe C++, qui peut être bien plus riche, mais peut aussi
utiliser le mot clef "struct".
Les mots "class" et "struct" ne changent à ma connaissance que
des question de visibilité. Hormis les questions d'héritage,
on a
struct X { <=> class X { public:Stroustrup dans sa "bible" nous dit bien qu'une struct est une classe
allégée, un structure de données plus qu'un type mais ne parle pas de la
façon dont c'est compilé.
La compilation est dépendante de l'implémentation, mais on
peut résonnablement imaginer qu'une classe sans aucune méthode
virtuelle est stoquée en mémoire comme une structure à la C.
Si en plus tu ne définis aucun constructeur par défaut,
destructeur ni opérateur de copie et qu'aucun membre n'en a
(ni aucun membre de membre, etc..), alors ça doit donner
un code vraiment très semblable à une structure à la C.
Marc Boyer
--
Lying for having sex or lying for making war? Trust US presidents :-(
YaNn wrote:
qui peut me dire si il y a une différence de vitesse entre les accés au
membres (publiques ou privés) d'une classe et ceux d'une struct ?
Il faudrait que tu me donnes la ref, mais j'aurais tendance à dire
qu'il faut distinguer deux choses: une "structure" à la C, avec
le mot clef struct et que des champs (publics), pas de méthode,
et une classe C++, qui peut être bien plus riche, mais peut aussi
utiliser le mot clef "struct".
Les mots "class" et "struct" ne changent à ma connaissance que
des question de visibilité. Hormis les questions d'héritage,
on a
struct X { <=> class X { public:
Stroustrup dans sa "bible" nous dit bien qu'une struct est une classe
allégée, un structure de données plus qu'un type mais ne parle pas de la
façon dont c'est compilé.
La compilation est dépendante de l'implémentation, mais on
peut résonnablement imaginer qu'une classe sans aucune méthode
virtuelle est stoquée en mémoire comme une structure à la C.
Si en plus tu ne définis aucun constructeur par défaut,
destructeur ni opérateur de copie et qu'aucun membre n'en a
(ni aucun membre de membre, etc..), alors ça doit donner
un code vraiment très semblable à une structure à la C.
Marc Boyer
--
Lying for having sex or lying for making war? Trust US presidents :-(
YaNn wrote:qui peut me dire si il y a une différence de vitesse entre les accés au
membres (publiques ou privés) d'une classe et ceux d'une struct ?
Il faudrait que tu me donnes la ref, mais j'aurais tendance à dire
qu'il faut distinguer deux choses: une "structure" à la C, avec
le mot clef struct et que des champs (publics), pas de méthode,
et une classe C++, qui peut être bien plus riche, mais peut aussi
utiliser le mot clef "struct".
Les mots "class" et "struct" ne changent à ma connaissance que
des question de visibilité. Hormis les questions d'héritage,
on a
struct X { <=> class X { public:Stroustrup dans sa "bible" nous dit bien qu'une struct est une classe
allégée, un structure de données plus qu'un type mais ne parle pas de la
façon dont c'est compilé.
La compilation est dépendante de l'implémentation, mais on
peut résonnablement imaginer qu'une classe sans aucune méthode
virtuelle est stoquée en mémoire comme une structure à la C.
Si en plus tu ne définis aucun constructeur par défaut,
destructeur ni opérateur de copie et qu'aucun membre n'en a
(ni aucun membre de membre, etc..), alors ça doit donner
un code vraiment très semblable à une structure à la C.
Marc Boyer
--
Lying for having sex or lying for making war? Trust US presidents :-(
En gros, cela correspond à savoir si les structs sont vraiments gerées
comme des classes ou pas.
En gros, cela correspond à savoir si les structs sont vraiments gerées
comme des classes ou pas.
En gros, cela correspond à savoir si les structs sont vraiments gerées
comme des classes ou pas.
qui peut me dire si il y a une différence de vitesse entre les accés
au membres (publiques ou privés) d'une classe et ceux d'une struct ?
Stroustrup dans sa "bible" nous dit bien qu'une struct est une classe
allégée, un structure de données plus qu'un type mais ne parle pas de
la façon dont c'est compilé.
Je pose cette question car je fais en ce moment un simulateur de
vêtement et j'aimerai savoir si pour les points de mon maillage je
dois faire une classe noeud ou simplement déclarer une struct noeud,
sachant que tous les membres sont publiques, ce qui correspond à la
définition de bjarne dans le choix entre les deux :).
En gros, cela correspond à savoir si les structs sont vraiments gerées
comme des classes ou pas.
qui peut me dire si il y a une différence de vitesse entre les accés
au membres (publiques ou privés) d'une classe et ceux d'une struct ?
Stroustrup dans sa "bible" nous dit bien qu'une struct est une classe
allégée, un structure de données plus qu'un type mais ne parle pas de
la façon dont c'est compilé.
Je pose cette question car je fais en ce moment un simulateur de
vêtement et j'aimerai savoir si pour les points de mon maillage je
dois faire une classe noeud ou simplement déclarer une struct noeud,
sachant que tous les membres sont publiques, ce qui correspond à la
définition de bjarne dans le choix entre les deux :).
En gros, cela correspond à savoir si les structs sont vraiments gerées
comme des classes ou pas.
qui peut me dire si il y a une différence de vitesse entre les accés
au membres (publiques ou privés) d'une classe et ceux d'une struct ?
Stroustrup dans sa "bible" nous dit bien qu'une struct est une classe
allégée, un structure de données plus qu'un type mais ne parle pas de
la façon dont c'est compilé.
Je pose cette question car je fais en ce moment un simulateur de
vêtement et j'aimerai savoir si pour les points de mon maillage je
dois faire une classe noeud ou simplement déclarer une struct noeud,
sachant que tous les membres sont publiques, ce qui correspond à la
définition de bjarne dans le choix entre les deux :).
En gros, cela correspond à savoir si les structs sont vraiments gerées
comme des classes ou pas.
Les mots "class" et "struct" ne changent à ma connaissance que
des question de visibilité. Hormis les questions d'héritage,
on a
struct X { <=> class X { public:
Les mots "class" et "struct" ne changent à ma connaissance que
des question de visibilité. Hormis les questions d'héritage,
on a
struct X { <=> class X { public:
Les mots "class" et "struct" ne changent à ma connaissance que
des question de visibilité. Hormis les questions d'héritage,
on a
struct X { <=> class X { public:
Voila à quoi je pensais, mais peut être avec des classes est-ce plus
concept tout-objet ? j'avoue ne pas être un fan du tout-objet mais s'il
faut en passer par la :)
Voila à quoi je pensais, mais peut être avec des classes est-ce plus
concept tout-objet ? j'avoue ne pas être un fan du tout-objet mais s'il
faut en passer par la :)
Voila à quoi je pensais, mais peut être avec des classes est-ce plus
concept tout-objet ? j'avoue ne pas être un fan du tout-objet mais s'il
faut en passer par la :)
tout pareil que Marc ; une struct n'étant qu'un classe simplifiée (tous
les
champs publics, etc.), une classe et une struct contenant les memes
éléments
devraient donner un code tout à fait similaire en terme de temps
d'exécution.
Il me semble également, et sur les implémentations auxquelles j'ai accès
pour ma part, dans un tel cas je privélégierai des classes avec des
membres
privates et des getters publics inline ; juste histoire de rester dans le
concept objet en fournissant une interface de manipulation pour
l'utlisateur.
Oui, ou alors peut-être :
tout pareil que Marc ; une struct n'étant qu'un classe simplifiée (tous
les
champs publics, etc.), une classe et une struct contenant les memes
éléments
devraient donner un code tout à fait similaire en terme de temps
d'exécution.
Il me semble également, et sur les implémentations auxquelles j'ai accès
pour ma part, dans un tel cas je privélégierai des classes avec des
membres
privates et des getters publics inline ; juste histoire de rester dans le
concept objet en fournissant une interface de manipulation pour
l'utlisateur.
Oui, ou alors peut-être :
tout pareil que Marc ; une struct n'étant qu'un classe simplifiée (tous
les
champs publics, etc.), une classe et une struct contenant les memes
éléments
devraient donner un code tout à fait similaire en terme de temps
d'exécution.
Il me semble également, et sur les implémentations auxquelles j'ai accès
pour ma part, dans un tel cas je privélégierai des classes avec des
membres
privates et des getters publics inline ; juste histoire de rester dans le
concept objet en fournissant une interface de manipulation pour
l'utlisateur.
Oui, ou alors peut-être :
Marc Boyer wrote:Les mots "class" et "struct" ne changent à ma connaissance que
des question de visibilité. Hormis les questions d'héritage,
on a
struct X { <=> class X { public:
J'ajoute qu'il y a ce que dit la norme et les conventions
de nommage, et que quelqu'un qui met des fonctions virtuelles
à une "struct", c'est un peu comme quelqu'un qui nomme
authorName une variable de type float: il a intérêt
à avoir une bonne raison.
Marc Boyer wrote:
Les mots "class" et "struct" ne changent à ma connaissance que
des question de visibilité. Hormis les questions d'héritage,
on a
struct X { <=> class X { public:
J'ajoute qu'il y a ce que dit la norme et les conventions
de nommage, et que quelqu'un qui met des fonctions virtuelles
à une "struct", c'est un peu comme quelqu'un qui nomme
authorName une variable de type float: il a intérêt
à avoir une bonne raison.
Marc Boyer wrote:Les mots "class" et "struct" ne changent à ma connaissance que
des question de visibilité. Hormis les questions d'héritage,
on a
struct X { <=> class X { public:
J'ajoute qu'il y a ce que dit la norme et les conventions
de nommage, et que quelqu'un qui met des fonctions virtuelles
à une "struct", c'est un peu comme quelqu'un qui nomme
authorName une variable de type float: il a intérêt
à avoir une bonne raison.
Oui, ou alors peut-être :
* Conserver vos données private.
* Ecrire les getter/setter pour les accès non critiques.
* Centraliser les traitements critiques (devant être rapides) dans une
classe
ou une fonction déclarée friend dans la classe de vos données.
Cordialemnt,
Pierre
Oui, ou alors peut-être :
* Conserver vos données private.
* Ecrire les getter/setter pour les accès non critiques.
* Centraliser les traitements critiques (devant être rapides) dans une
classe
ou une fonction déclarée friend dans la classe de vos données.
Cordialemnt,
Pierre
Oui, ou alors peut-être :
* Conserver vos données private.
* Ecrire les getter/setter pour les accès non critiques.
* Centraliser les traitements critiques (devant être rapides) dans une
classe
ou une fonction déclarée friend dans la classe de vos données.
Cordialemnt,
Pierre