class A{
public:
  A(B);
};
void f(A);B b;
A a(b);
f(a);B b;
f(A(b));Но можно еще проще:
B b;
f(b);Это приведение бывает полезным. Например (Страуструп 11.3.5), для операций с комплексными числами. Вместо такой стопки функций:
complex operator+(complex, complex);
complex operator+(complex, double);
complex operator+(double, complex); 
 
 Сообщения
Сообщения
 
 

До C++11 конструкторами преобразования могли быть конструкторы только с одним параметром. Однако в C++11 это ограничение было снято (наряду с добавлением uniform инициализации), и конструкторы, имеющие несколько параметров, также уже могут быть конструкторами преобразования.
ОтветитьУдалитьhttps://ravesli.com/urok-143-konstruktory-preobrazovaniya-klyuchevye-slova-explicit-i-delete/