Librairie dynamique et variables remanentes
Fermé
MrLuck
Messages postés
43
Date d'inscription
mercredi 10 octobre 2007
Statut
Membre
Dernière intervention
1 décembre 2010
-
15 avril 2009 à 10:53
Char Snipeur Messages postés 9688 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 2 octobre 2020 - 15 avril 2009 à 15:17
Char Snipeur Messages postés 9688 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 2 octobre 2020 - 15 avril 2009 à 15:17
A voir également:
- Librairie dynamique et variables remanentes
- Tableau croisé dynamique - Guide
- Impossible d'afficher le rapport de tableau croisé dynamique sur un rapport existant ✓ - Forum Excel
- Touches rémanentes c'est quoi - Guide
- Le nom du champ de tableau croisé dynamique n'est pas valide ✓ - Forum Excel
- Librairie anspach ✓ - Forum Consommation et internet
3 réponses
mamiemando
Messages postés
32283
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
17 mars 2023
7 572
15 avril 2009 à 14:22
15 avril 2009 à 14:22
Si j'ai bien compris, ce que tu appelles une variable rémanente est une variable statique ?
Si c'est une variable statique interne à :
- une classe ou une structure : elle est partagée par toutes les instances de ladite classe/structure
- une fonction : la valeur de la variable est mémorisée entre deux appels de cette fonction
- un fichier : la variable peut être vue comme une variable globale dont la portée est limitée au fichier
Supposons que tu aies une classe cycliste dont l'un des attributs est un unsigned qui stoke la vitesse. Alors comme cette vitesse est spécifique au cycliste elle ne doit pas être statique.
Au contraire, un compteur d'instance (un compteur qui compte le nombre de cycliste, incrémenté à chaque appel d'un constructeur de la classe cycliste et décrémenté à chaque appel du destructeur) est commun aux cyclistes, donc est un membre statique de la classe cycliste.
Voir aussi :
http://www.commentcamarche.net/forum/affich 9289549 compteur d objets c#4
Quoi qu'il en soit je ne vois pas le rapport avec des histoires de librairies dynamiques. Une librairie dynamique (fichier .so sous linux) peut être vu comme un .o à ceci prêt qu'elle n'est pas incorporée dans l'exécutable final contrairement à une librairie dynamique (.a sous linux). C'est ce qui permet pour un même programme de tourner avec différentes versions de librairies. A aucun moment la notion de portée et de partage de variable n'est modifiée.
Bonne chance
Si c'est une variable statique interne à :
- une classe ou une structure : elle est partagée par toutes les instances de ladite classe/structure
- une fonction : la valeur de la variable est mémorisée entre deux appels de cette fonction
- un fichier : la variable peut être vue comme une variable globale dont la portée est limitée au fichier
Supposons que tu aies une classe cycliste dont l'un des attributs est un unsigned qui stoke la vitesse. Alors comme cette vitesse est spécifique au cycliste elle ne doit pas être statique.
Au contraire, un compteur d'instance (un compteur qui compte le nombre de cycliste, incrémenté à chaque appel d'un constructeur de la classe cycliste et décrémenté à chaque appel du destructeur) est commun aux cyclistes, donc est un membre statique de la classe cycliste.
class cycliste{
protected:
unsigned vitesse;
static unsigned compteur_instance;
public:
cycliste(unsigned vitesse0 = 0):vitesse(vistesse0){
++compteur_instance;
}
~cycliste(){
--compteur_instance;
}
};
cycliste::compteur_instance = 0; // superflu à priori
Voir aussi :
http://www.commentcamarche.net/forum/affich 9289549 compteur d objets c#4
Quoi qu'il en soit je ne vois pas le rapport avec des histoires de librairies dynamiques. Une librairie dynamique (fichier .so sous linux) peut être vu comme un .o à ceci prêt qu'elle n'est pas incorporée dans l'exécutable final contrairement à une librairie dynamique (.a sous linux). C'est ce qui permet pour un même programme de tourner avec différentes versions de librairies. A aucun moment la notion de portée et de partage de variable n'est modifiée.
Bonne chance
Char Snipeur
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 328
15 avril 2009 à 14:25
15 avril 2009 à 14:25
C'est quoi une variable rémanente ? jamais entendu parlé.
mamiemando
Messages postés
32283
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
17 mars 2023
7 572
15 avril 2009 à 14:28
15 avril 2009 à 14:28
Il suffit de regarder sur google :-) C'est une variable statique apparemment.
Char Snipeur
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 328
15 avril 2009 à 15:17
15 avril 2009 à 15:17
Quel con, moi qui regardait dans mon cours de C++ :-p