struct SData
{
int main_type;
int sub_type;
};
typedef boost::shared_ptr<SData> TData;
typedef boost::shared_ptr<TData> TTData;
TData data_t(new SData);
其中,data_t存放的是结构体的指针。可以直接操作结构体的成员变量。
data_t->main_type = 100;
data_t->sub_type = 20;
TTData td(&data_t);
而td存放的是data_t的地址。通过取值运算符可以得到该地址中存放的结构体的指针,来对结构体成员变量进行操作。
(*td)->main_type = 500;
(*td)->sub_type = 660;