Что ж, я могу говорить о чепухе, но я думаю, что вы могли бы попытаться определить "двойной" класс с теми же членами, что и класс, который вы хотите изменить, но с другими модификаторами public / private, а затем использовать reintepret_cast для приведения исходного класса к вашему. в котором вы можете получить доступ к закрытым членам.
Это немного бестолково; -)
Немного кода, чтобы объяснить идею:
class ClassWithNoAccess
{
public:
someMethod();
private:
int someVar;
};
class ClassTwin
{
public:
someMethod();
public:
int someVar;
}
и где-то в коде:
ClassWithNoAccess* noAccess = new ClassWithNoAccess();
ClassTwin* twin = reinterpret_cast<ClassTwin *>(noAccess);
twin->someVar = 1;
edit: так, как кто-то уже писал ранее, это может работать, но стандарт не гарантирует, что порядок переменных с модификаторами public и private будет одинаковым