Как ограничить доступ к методам определенных классов в C++, не предоставляя полный доступ для друзей? [дубликат]C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Как ограничить доступ к методам определенных классов в C++, не предоставляя полный доступ для друзей? [дубликат]

Сообщение Anonymous »

У меня есть класс Swapchain:

Код: Выделить всё

struct SwapChain
{
private:
int handle;
int image;
public:
void createSwapChain() { }
};
Так что вполне логично, что createSwapChain можно вызывать извне. НО, не было бы лучше, если бы createSwapChain мог вызываться только одним другим классом. Чем больше ограничений, тем лучше, верно? Поэтому я делаю createSwapChain приватным и добавляю:

Код: Выделить всё

friend class ClassThatCanCreateSwapChain;
Хорошо, теперь это в некотором смысле более ограничительно, и это хорошо, никакие другие части моей программы не могут его вызвать, потому что это было бы ошибкой с точки зрения дизайна. Проблема теперь в том, что ClassThatCanCreateSwapChain может получить доступ к частному члену SwapChain, а это некошерно. Какие у меня есть варианты? Если я ограничен тем или другим, я думаю, что оригинал лучше, который не раскрывает свои личные качества? Однако его может вызвать любой класс. Есть ли способы отловить вызов классов, отличных от того, который я намереваюсь использовать?

Подробнее здесь: https://stackoverflow.com/questions/791 ... ing-full-f
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как завести друзей друзей (общие друзья) - django
    Anonymous » » в форуме Python
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Как завести друзей друзей (общие друзья) - django
    Anonymous » » в форуме Python
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Как завести друзей друзей - Джанго
    Anonymous » » в форуме Python
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Как ограничить PowerShell SDK, чтобы ограничить доступ сценариев к определенным методам обратного вызова в приложении C#
    Anonymous » » в форуме C#
    0 Ответы
    51 Просмотры
    Последнее сообщение Anonymous
  • Как ограничить PowerShell SDK, чтобы ограничить доступ сценариев к определенным методам обратного вызова в приложении C#
    Anonymous » » в форуме C#
    0 Ответы
    54 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»