所以我有一个场景,其中有类内的类,以便访问特定的变量或函数:
stateMachine->data->poseEstimate->getData()
stateMachine->data->poseEstimate->setData()
现在这是完全合法的,但看起来很复杂,很难阅读。在函数中,我希望能够做到这样的事情:
typedef stateMachine->data->poseEstimate pose
pose->getData()
pose->setData()
这将使代码更具可读性。显然typedef
不会工作,因为它用于定义类型。是否有平等的方式可以让我这样做?
答案 0 :(得分:2)
在实践中,我使用引用变量为所述对象添加别名,并给出与其所在上下文相关的描述性名称:
PoseEstimateType& PoseEstimate = stateMachine->data->poseEstimate;
PoseEstimate->getData();
PoseEstimate->setData();
如果您的编译器支持auto
关键字,则可以使用auto
引用:
auto& PoseEstimate = stateMachine->data->poseEstimate;
PoseEstimate->getData();
PoseEstimate->setData();
答案 1 :(得分:1)
使用引用存储中间对象。我们不知道您的类型名称,但假设poseEstimate
的类型为MyType
:
MyType &pose = stateMachine->data->poseEstimate;
pose->getData();
pose->setData();
// ...