Есть ли разница между частной и защищенной чистой виртуальной функцией?

Я могу понять, что может быть причина объявить реализованную (в отличие от чистой) виртуальную функцию частной или защищенной. Afaik, если вы объявляете реализованный виртуальный метод защищенным, ваш дочерний класс может вызывать метод базового класса (и никто другой не может). Если вы объявите его закрытым, только базовый класс сможет вызвать реализацию виртуального метода по умолчанию.

Однако с чистыми виртуальными машинами нет базовой реализации... Так разве функционально не эквивалентно объявить чистую виртуальную машину либо частной, либо защищенной? Защищенный чистый виртуальный объект не имеет смысла, потому что вы никогда не сможете вызвать соответствующий метод базового класса. Существуют ли сценарии, в которых защищенный чистый виртуальный компьютер имеет смысл?

На SO есть несколько похожих тем, но я не смог найти ничего, что дало бы краткий ответ на мой вопрос.

18
задан Kara 28 June 2013 в 23:53
поделиться