Как сделать класс не выводимым вообще. там в любом случае? - PullRequest
0 голосов
/ 24 октября 2009

Привет, кто-нибудь, дайте мне знать, как сделать класс вообще не выводимым. там в любом случае? пожалуйста, дай мне знать. С уважением Hara

Ответы [ 4 ]

6 голосов
/ 24 октября 2009

См. это объяснение того, как это сделать и почему это может быть не очень хорошей идеей, Бьярн Страуструп (создатель самого C ++).

4 голосов
/ 24 октября 2009

Если у вашего класса есть закрытый конструктор, создание производного класса невозможно.

См. «Как настроить мой класс, чтобы он не был унаследован?» в C ++ FAQ Lite.

3 голосов
/ 24 октября 2009

Сделать ctor (s) приватными.

class not_derivable { private: not_derivable(){} };

class derived : public not_derivable {};

int main() { derived d; // diagnostic }

или дтор:

class not_derivable { private: ~not_derivable(){} };

class derived : public not_derivable {};

int main() { not_derivable *nd = new not_derivable; derived d; //diagnostic }
2 голосов
/ 24 октября 2009

Сделать конструктор приватным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...