Zablokowanie konstruktora domyślnego
Ostatnio zmodyfikowano 2016-04-11 18:27
fokusx Temat założony przez niniejszego użytkownika |
Zablokowanie konstruktora domyślnego » 2016-04-09 14:02:47 W jaki sposób zablokować użycie konstruktora domyślnego w klasie? |
|
Gibas11 |
» 2016-04-09 14:31:13 Możesz zadeklarować go jako prywatny, ale nie do końca wiem o co Ci chodzi. |
|
pekfos |
» 2016-04-09 14:42:42 |
|
carlosmay |
» 2016-04-09 17:24:58 Zwykle deklaracja konstruktora parametrycznego, bez konstruktora domyślnego uniemożliwia utworzenie obiektu konstruktorem domyślnym. Nie wiem jak inne środowiska, ale C::B i VS tego pilnują.
|
|
Gibas11 |
» 2016-04-09 18:45:27 |
|
mokrowski |
» 2016-04-11 18:27:12 Tak jak pisał @carlosmay, tworzenie konstruktora parametrycznego i brak definicji domyślnego (bez parametrów), powoduje że kompilator nie tworzy konstruktora domyślnego. Tak samo jest z kopiującym. Brak konstruktora jakiegokolwiek powoduje że kompilator tworzy konstruktor domyślny (oraz domyślny kopiujący). Oprócz tego, działa jeszcze (tu trochę na wyrost) składania z C++11: #include <iostream>
class X { public: X() = delete; static void info() { std::cout << "X::info()" << std::endl; } };
int main() { X::info(); }
|
|
« 1 » |