Je suis en mesure d'éviter la conversion implicite d'un constructeur à l'aide de la balise explicit
mot-clé. Donc maintenant, les conversions comme A a1 = 10;
peut être évitée.
Mais je peux toujours initialiser A a1 = A(20.2);
. Comment puis-je désactiver la création d'objet de sorte qu'un objet ne puisse être créé que si nous passons un entier comme paramètre, par exemple. A a1 = A(10)
?
#include <iostream>
class A
{
public:
explicit A(int a)
{
num = a;
}
int num;
};
int main()
{
A a1 = A(10.0);
std::cout << a1.num;
return 0;
}