[C++11] Tworzenie obiektu z usuniętym konstruktorem domyślnym.
Ostatnio zmodyfikowano 2015-06-04 20:22
Kaikso Temat założony przez niniejszego użytkownika |
[C++11] Tworzenie obiektu z usuniętym konstruktorem domyślnym. » 2015-06-04 17:22:46 W jednej klasie usunąłem konstruktor domyślny mniej więcej w taki sposób: class A { public: A( int a ); A() = delete; }
Problem polega na tym że nie rozumiem poniższego zachowania: int main() { A a0; A a1(); return 0; }
1) Dlaczego podczas jawnego wywołania konstruktora domyślnego (z użyciem nawiasów) kod się kompiluje mimo jego usunięcia? 2) Jak zablokować taki kod? Być może błąd jest w moim rozumowaniu ale dla mnie te dwa zapisy się niczym nie różnią. |
|
Monika90 |
» 2015-06-04 18:10:50 Bo to nie tworzy obiektu, to jest deklaracja bezargumentowej funkcji zwracającej A. |
|
Kaikso Temat założony przez niniejszego użytkownika |
» 2015-06-04 20:22:57 Racja wziąłem ten zapis za wywołanie konstruktora bez argumentów tak jak to się robi gdy są argumenty: class A { public: A( int a ); };
int main() { A a( 10 ); }
W każdym razie dziękuję za pomoc i zamykam temat ;) |
|
« 1 » |