Базовый класс будем называть класс (Cl1), к приватным переменным которого нужно получить доступ.
Чтобы получить доступ извне к закрытым членам базового класса можно объявить в базовом классе friend class Cl2 потомка, доступ которому нужен.
class Cl1
{
public:
friend class Cl2;
Cl1();
private:
QString prvt_str1;
};
Но фишка в том , что friend надо прописывать в заголовочном файле базового класса Cl1 (что вообще-то логично), доступ к членам которого надо получить извне. То есть все-равно сначала надо править заголовочный файл базового класса cl1.h, доступ к которому закрыт (хотя заголовки идут обычно всегда открыто - правь на здоровье).
Ниже можно скачать демо проект, когда Cl1 и Cl2 не связаны наследованием (то есть самостоятельные)
Другой вариант, когда Cl2 является наследником класса Cl1 и мы хотим получить доступ к приватным данным класса Cl1.
В этом случаем, чтобы получить доступ к приватной переменной класса Cl1 из наследника Cl2 достаточно обращаться к ней из приватной функции Cl2. Но в классе Cl1 сентенция friend class Cl2; остается обязательной.
Файлы для скачивания
*
friend class Cl2
friend class Cl2