Bonjour à tous,

Je vous pose aujourd'hui une question qui je pense est assez simple, mais comme je ne sais pas quoi taper sur internet je n'ai rien trouvé à ce sujet.

Imaginons une classe A, contenant un accesseur sur référence constante J'initialise un pointeur sur cette classe puis je déclare un
Code : Sélectionner tout - Visualiser dans une fenêtre à part
const int& variable = a.getX()
Je détruis le pointeur sur la classe A et évidemment la variable référence n'est plus valide. Mon problème est le suivant : comment détecter que r n'est plus valide sans provoquer un crash du programme ?

Si vous voulez je peux vous expliquer pourquoi je voudrais savoir ça mais je ne le fais pas ici car cela ne me semble pas nécessaire à la résolution du problème.
J'ajoute également que je préfère l'utilisation de pointeurs permettant beaucoup plus de souplesse car il suffit d'un pour savoir si le pointeur est valide.



Je poste également un autre problème afin de ne pas trop surcharger le forum même si ce problème n'a pas grand chose à voir avec le précédent.
Je serai assez bref : imaginons une classe template A :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
template <typename T>
class A
{
//du code
}
Maintenant imaginons une classe B templatée comportant une fonction template dont le paramètre template pourrait être la classe A avec un paramètre template indéterminé (je sais c'est lourd mais comment expliquer ça autrement ).
Cela donnerait quelque chose comme ça (même si la ça ne compile pas évidemment)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
class B
{
    //du code
 
    template <typename T, typename U>
    void faireqqch(T<U> machin);
}
 
template <typename T, typename U>
void B::faireqqch(T<U> machin)
{
    //faire qqch
}
 
template <>
void B::faireqqch(A<T> specialisationclasseATemplateEnT)
{
    //faire qqch
}
Sachant que l'action à réaliser dans le cas de la spécialisation de B avec le paramètre A<T> pourrait être la même quelque soit T !

Merci par avance