次のような構造があるとします。
class AAA
{
BBB bb_member;
double dbl_member;
....................
}
class BBB
{
int int_member;
QString QStr_member;
.................
QTextEdit m_textEdit;
}
AAA の場合、次の演算子を定義します。
QDataStream &operator<<(QDataStream &out, const AAA &aa)
{
out << aa.bb_member
<< aa.dbl_member;
return out;
}
QDataStream &operator>>(QDataStream &in, AAA &aa)
{
BBB bb_memb;
double dbk_memb;
in >> bb_memb
>> dbk_memb;
aa = AAA(bb_memb, dbk_memb);
return in;
}
次に、これを呼び出します。
QFile file("myFileName");
file.open(QIODevice::WriteOnly))
QDataStream out(&file);
out << AAA_object;
AAA オブジェクトをファイルにシリアライズするため。
今質問です。<< AAA_object;を呼び出すときに、BBB オブジェクト (int、QString、およびQTextEdit がテキスト コンテンツに到達)をシリアル化するために、BBB クラスの QDataStream 演算子を定義する方法を教えてください。???