Cześć,
mam pewne pytanie dotyczące słówka explicit i tworzenia obiektu z operatorem "=". Otóż jak wiemy słówko explicit uniemożliwia stworzenie konstruktora konwertującego (w sensie, że konstruktor konwertujący staje się "normalnym" konstruktorem). Jednak gdy na naszym konstruktorze użyjemy tego słowa kluczowego explicit, to wtedy nie można stworzyć obiektu w ten sposób:
class aaa {
public:
explicit aaa( const char[] x ) { // blabla }
};
// ...
aaa o = "tekst"; // blad! mozna jedynie aaa o( "tekst" );
dlaczego? Jaki jest sens w blokowaniu tworzenia obiektów za pomocą pierwszego sposobu (z operatorem przypisania)?
Pozdrawiam i dziękuję za pomoc.
Shalom