Je voudrais mettre une condition à la construction d'un objet.
Par exemple, j'ai une classe nbr, et sont constructeur par défaut :
nbr( int l_nbr );
Je veux mettre une condition à la consruction de l'objet qui est dans ce cas ci que le parramètre l_nbr soit < 5.
Je veut faire ça pour empêcher le client de créé un objet nbr avec un int > 4.
Une solution serais que le constructeur de classe test l_nbr et s'il est > 4 appelle le destructeur de classe. Mais quand je le fais, ça ne marche pas, le client peut encore utilisé l'objet.
Voici un exemple :
#include <iostream>
class nbr
{
public:
nbr(int l_nbr);
virtual ~nbr();
int m_nbr;
};
nbr::nbr(int l_nbr)
{
if (l_nbr < 5)
{
m_nbr = l_nbr;
}
else
{
nbr::~nbr(); // un ou l'autre ça ne marche pas
this->~nbr(); //
}
}
nbr::~nbr()
{
}
int main()
{
nbr pn(6);
std::cout << pn.m_nbr;
return 0;
}
J'aimerais que le compilateur génère une erreur quand j'essaie d'utilisé un objet construit avec un int > 4.