Якобы-указатель на элементы внутри класса

В этой теме мной будет применяться авторский термин: мнимый указатель. Этот термин не технический, а используется только потому что то, что должно бы быть по логике указателем, и не указатель вовсе. Указатели, которые указывают на данные класса: на функции объекта или на переменные, хранимые внутри объекта, — указателями и не являются. Возможно, кому-то приходило в голову создать указатель на функцию внутри класса, а сообразить не удавалось, как такое провернуть.
  • Использовать обычный указатель для указания на части класса нельзя
Ради интереса можете попробовать создать простой класс и объявить и направить указатель на внутренности объявленного класса:


Не просто объявите указатели, но и обратитесь по ним к связанным с ними элементам, т. е. и к x и к foo(). Это возможно.
Ради тех, кому интересно попробовать, описание прячется под спойлер:

Я не имею никакого опыта в программировании, но мне ведь можно иметь свою точку зрения? То, что это напоминает выворачивание кишок наружу из здорового организма, способствует моему пониманию: всё это плохо! Конечно кто-то такое проделывает, но многие опытные программисты пишут о том, что за многие годы практики никогда не использовали этот приём.
У этого приёма много минусов: трудно читать, легко ошибиться, нужно очень серьёзное внимание к написанию кода и особое внимание к пониманию того, что делаешь. Это только те минусы, которые я сумел вывести в процессе написания текущей статьи, минусы наверняка ещё есть. И похоже, что количество минусов перевешивает количество плюсов, плюсы найти вообще очень трудно, поэтому могу посоветовать никогда этого не использовать, а просто знать, что язык С++ позволяет такое творить.

Мне остаётся надеяться, что этот материал кому-то будет интересен, окажется полезным и время на написание этой статьи было потрачено мной не зря. Но учтите, что ограничиваться этой страницей не стоит, нужно обязательно смотреть, что другие люди об этом всём пишут. Так ваша картина мира будет более полной.
Объявить внутри класса указатель на функцию-член класса и использовать его можно так:



Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Поиск

 
     

Случайная книга в электронном формате

https://www.litres.ru/stanislav-gornakov/razrabotka-komputernyh-igr-dlya-pristavki-xbox-360-v-xna-game-studio-express/?lfrom=15589587
Яндекс.Метрика