Я знаю, что этот вопрос немного странный, но, пожалуйста, потерпите меня.
Разрабатываю ООД для парковки. Я хочу разрешить парковку только тем транспортным средствам, в которых есть функция autopark
. В Java я бы создал интерфейс, и только объекты этого интерфейса (т. е. автомобили с autopark
функциями) могли бы парковаться. В C++ интерфейсы создаются с использованием абстрактных классов с чисто виртуальными методами. Итак, я не могу создавать объекты этого «интерфейса С++». Итак, как мне добиться этого на С++?
Примечание. Я знаю другие методы, такие как использование некоторого флага для обозначения наличия или отсутствия функции autopark
и т. д.; но меня не интересуют эти обходные пути.
implement
устанавливали интерфейс в Java. Применяются одни и те же вещи. - person Charles   schedule 05.02.2017dynamic_cast<autopark *>(address_of_some_object)
даетNULL
(или, в C++11nullptr
), еслиsome_object
НЕ относится к типу, производному (доступно) отautopark
. - person Peter   schedule 05.02.2017autopark
, верно? - person   schedule 05.02.2017