Приветствую всех.
Возник следующий вопрос:
В С++ с помощью ключевого слова explicit можно запретить неявное преобразование аргумента конструктора. Т.е.
class A
{
int x;
public:
explicit A(int d)
{
x = d;
}
};
int main()
{
A a1(5); // так можно
A a2 = 5; // ошибка
return 0;
}
Собственно вопрос: чем может быть опасно неявное преобразование аргумента конструктору. Может быть кто-нибудь сталкивался с этим на практике?