C++ 如何使用构造函数中的信息初始化成员
我有5个按钮。我正在创建一个结构来描述它们。他们使用和 所以,我的计划是: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; } }; 按钮
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,电容器){…}。