gpt4 book ai didi

c++ - 公开定义对象,但在构造函数中创建它

转载 作者:行者123 更新时间:2023-11-27 23:05:46 25 4
gpt4 key购买 nike

我想做的与此类似(工作):

class Claw {
public:
Claw(int pin);
private:
int pin;
};

Claw::Claw(int pinNumber) {
pin = pinNumber;
}

但我想用类而不是基本类型来做。我想在私有(private)部分定义类(这样我就可以在所有对象上使用它)并在 Wheel 构造函数中执行 AccelStepper 构造函数。我已经尝试了这两种解决方案,但它们都给出了不同的错误:

class Wheel {
public:
Wheel(int pin);
private:
AccelStepper stepper;
};

Wheel::Wheel(int pinNumber) {

// This doesn't work
AccelStepper stepper(AccelStepper::DRIVER, pinNumber, 1);

// This also doesn't work
stepper(AccelStepper::DRIVER, pinNumber, 1);
}

我怎样才能实现我想做的事情?

请注意,这有效,但我无法传递 PIN 码:

class Wheel {
public:
Wheel();
private:
AccelStepper stepper(5);
};

Wheel::Wheel() {
}

最佳答案

你用 member initialization list 来做:

Wheel::Wheel(int pinNumber)
: stepper(AccelStepper::DRIVER, pinNumber, 1)
{
}

关于c++ - 公开定义对象,但在构造函数中创建它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23654582/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com