Wywołanie konstruktora konwertującego

Wywołanie konstruktora konwertującego
  • Rejestracja: dni
  • Ostatnio: dni
0

Cześć.
Mam kod:

Kopiuj
#include <iostream>

using namespace std;

struct p {
p(double)
{
cout << "doub\n";
}
};


int main(){

p a(static_cast<p>(6.6));
p b = (p)6.6;
p(6.6);
 
return 0;
}

Który z tych konstruktorów zostanie wywołany niejawnie?

Kopiuj
p a(static_cast<p>(6.6));
p b = (p)6.6;
p(6.6);

Wydaje mi się, że w każdym przypadku będą wywołane jawnie, ale czy mógłby to ktoś potwierdzić?

AN
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 36
0

p(6.6); - to nie jest konstruktor.

Azarien
  • Rejestracja: dni
  • Ostatnio: dni
0

Niejawnie to byłoby

Kopiuj
p c = 6.6;
  • Rejestracja: dni
  • Ostatnio: dni
0

Dzięki za rozwianie wątpliwości :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.