在其他类方法中使用构造函数中的object

Use object from constructor in other class methods

本文关键字:构造函数 object 其他 类方法      更新时间:2023-10-16

我有一个定义如下的类:

class PlotterAxis
{
public:
    PlotterAxis(Stepper *stepper);
    long position();
private:
    long pos;
};

现在我想访问PlotterAxis::position()中的步进对象,如

long PlotterAxis::position()
{
    return pos;
}

但我不知道如何使对象从构造函数参数在PlotterAxis的其他方法中可用

我看不到您提到的访问,但您需要将指针存储在PlotterAxis中,这是肯定的:

class PlotterAxis
{
public:
    PlotterAxis(Stepper *stepper);
    long position();
private:
    // raw pointer, beware of stepper's lifetime and copy semantics of PlotterAxis
    Stepper *stepper;
    long pos;
};
PlotterAxis::PlotterAxis(Stepper *stepper) : stepper(stepper) {}

然后你可以访问它:

long PlotterAxis::position()
{
    stepper->doSomething();
    return pos;
}

但我不知道如何从构造函数参数的对象可在PlotterAxis的其他方法

您必须将输入PlotterAxis存储在类中作为成员变量,并在需要时使用它。

class PlotterAxis
{
   public:
      PlotterAxis(Stepper *stepper) : stepper_(stepper) {}
      long position();
   private:
      Stepper *stepper_;
      long pos;
};

long PlotterAxis::position()
{
    // Use stepper_ if you need to.
    stepper_->someFunction();
    return pos;
}
相关文章: