Нет, я категорически против наследования в данном случае. QStringHolder просто держит QString, как, например, смарт-поинтер держит указатель. Просто для QStringHolder можно будет сделать перегрузку глобальных операторов <<, >> c нужным форматом.
class QStringHolder
{
public:
QStringHolder() { }
friend QDataStream& operator<<(QDataStream& stream, const QStringHolder& value);
friend QDataStream& operator>>(QDataStream& stream, QStringHolder& value);
QString str;
};
т.е. если мне надо считать в securityPolicyUri.
QStringHolder st;
QString policyUri;
QDataStream stream;
stream >> st;
policyUri = st.str;
как-то не очень удобно.