C++ 如何使用构造函数中的信息初始化成员

C++ 如何使用构造函数中的信息初始化成员,c++,struct,arduino,C++,Struct,Arduino,我有5个按钮。我正在创建一个结构来描述它们。他们使用和 所以,我的计划是: struct按钮 { 长capThreshold=200; 长最大亮度; 按钮(uint8\u t capPin、字节ledPin、字节maxLedBrightness) { 自动发光二极管=JLed(发光二极管引脚); 自动电容传感器=电容传感器(2,电容传感器); capSensor.设置\u CS\u超时\u毫秒(50); maxLedBrightness=maxLedBrightness\uux; } }; 按钮

我有5个按钮。我正在创建一个结构来描述它们。他们使用和

所以,我的计划是:

struct按钮
{
长capThreshold=200;
长最大亮度;
按钮(uint8\u t capPin、字节ledPin、字节maxLedBrightness)
{
自动发光二极管=JLed(发光二极管引脚);
自动电容传感器=电容传感器(2,电容传感器);
capSensor.设置\u CS\u超时\u毫秒(50);
maxLedBrightness=maxLedBrightness\uux;
}
};
按钮[5]={
按钮(A0,3,45),
按钮(A1、5、255),
按钮(A2,6,30),
按钮(A3、9100),
按钮(A4、10、100)};
这不管用。我尝试使用它:

for(字节i=0;i<4;i++)
{
按钮[i].led.Update();
}
然后,我被告知
类“按钮”没有成员“led”
。因此,我相信这里发生的事情是,成员正在构造函数中初始化,这意味着它不能从外部访问。所以,我发现我自己和你在一起。解决方案是初始化指向成员的指针,然后在构造函数中填充指针的内容

我真的不想这样做。我不想记住什么是指针,什么不是指针。我不想有时不得不使用
->
而不是
。此外,听起来我不得不面对毁灭。我不希望这个相对无关紧要的问题在整个项目中引起这些头痛

有什么办法可以避免吗


编辑:
让我重新表述我的问题。我认为这是一个误会。我知道构造函数中初始化的变量不是成员。我知道,使用普通变量,我可以声明成员,然后在构造函数中修改它。问题是,我不能在构造函数之外声明这些变量,因为我需要从我的构造函数中获取它们的构造函数所需的信息。

即使需要构造函数参数,初始化构造函数中的成员也没有问题。这就是a的用途

struct Button
{
    JLed lid;
    CapacitiveSensor capSensor;
    long maxLedBrightness;

    Button(uint8_t capPin, byte ledPin, byte maxLedBrightness_):
        lid(ledPin),
        capSensor(2, capPin),
        maxLedBrightness(maxLedBrightness_)
    {
        capSensor.set_CS_Timeout_Millis(50);
    }
};

确切地说,该类没有成员,请检查它。它只有long capThreshold和long maxLedBrightness作为数据成员。你不能在构造函数中声明成员,你可以在类中声明它们,然后在构造函数中初始化它们——初始化列表就是这样做的<代码>JLed;电容传感器;按钮(…):led(发光二极管),电容传感器(2,电容器){…}。