缩短长变量访问器的最佳方法是什么?

时间:2012-10-18 00:29:05

标签: c++ class function variables

所以我有一个场景,其中有类内的类,以便访问特定的变量或函数:

stateMachine->data->poseEstimate->getData()
stateMachine->data->poseEstimate->setData()

现在这是完全合法的,但看起来很复杂,很难阅读。在函数中,我希望能够做到这样的事情:

typedef stateMachine->data->poseEstimate pose

pose->getData()
pose->setData()

这将使代码更具可读性。显然typedef不会工作,因为它用于定义类型。是否有平等的方式可以让我这样做?

2 个答案:

答案 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();

// ...