Я никогда не использую "struct" в C ++.
Я не могу себе представить сценарий, в котором вы будете использовать структуру, когда вам нужны частные члены, если вы не пытаетесь вводить в заблуждение.
Кажется, что использование структур - это скорее синтаксическая индикация того, как будут использоваться данные, но я бы предпочел просто создать класс и попытаться сделать это явным в имени класса или в комментариях.
1007 * Е.Г. *
class PublicInputData {
//data members
};