Проверка, какой объект вызвал метод объекта другого - PullRequest
0 голосов
/ 15 февраля 2020

Допустим, у меня есть два класса:

class TV
{
   ...
   void TV_chnl_change(int channel_number);
   ...
};

class Remote
{
   ...

   void remote_chnl_change(int channel_number, TV *T)
   {
      T->TV_chnl_change(channel_number);
   }

   ...
};

Оба показанных метода опубликованы c, я хочу реализовать метод TV_chnl_change так, чтобы он мог проверить, был ли он вызван объект из Remote класса. Можно ли в cpp получить указатель на вызывающий объект или хотя бы проверить его класс, не передавая никаких дополнительных параметров? Я не хочу, чтобы какой-либо объект, кроме Remote, и скажем, какой-нибудь произвольный объект Viewer мог бы использовать метод TV_chnl_change. То, что я хочу сделать, это отказаться от использования механизма друзей.

1 Ответ

3 голосов
/ 15 февраля 2020

Почему у вас есть метод publi c, к которому вам нужно ограничить доступ? Вы должны назначить его частным и написать интерфейс для него.

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