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



