У меня есть класс Swapchain:
Код: Выделить всё
struct SwapChain
{
private:
int handle;
int image;
public:
void createSwapChain() { }
};
Так что вполне логично, что createSwapChain можно вызывать извне. НО, не было бы лучше, если бы createSwapChain мог вызываться только одним другим классом. Чем больше ограничений, тем лучше, верно? Поэтому я делаю createSwapChain приватным и добавляю:
Хорошо, теперь это в некотором смысле более ограничительно, и это хорошо, никакие другие части моей программы не могут его вызвать, потому что это было бы ошибкой с точки зрения дизайна. Проблема теперь в том, что ClassThatCanCreateSwapChain может получить доступ к частному члену SwapChain, а это некошерно. Какие у меня есть варианты? Если я ограничен тем или другим, я думаю, что оригинал лучше, который не раскрывает свои личные качества? Однако его может вызвать любой класс. Есть ли способы отловить вызов классов, отличных от того, который я намереваюсь использовать?
Подробнее здесь:
https://stackoverflow.com/questions/791 ... ing-full-f