c++对象内部的对象和构造函数混淆

问题描述 投票:0回答:1

我对在 C++ 中使用类有点陌生,在创建一个将实例化我已经创建的一些对象的类时,我有点困惑。

对于我的示例,我将尽可能保持简单。我从一个名为 DigiPlat 的类开始,这是一个板上有多个开关、旋钮和脚踏开关的板。我尝试添加的第一个类是 Footswitch 类。 FootSwitch hpp 和 cpp 如下所示。

脚踏开关.cpp

class FootSwitch {
public:
FootSwitch(uint8_t pin_value, FSType fs_type);

void init_FootSwitch();
void update_FootSwitch();

// Add your class members here
FSType switch_type;
uint8_t pin;
uint8_t ButtonState;
uint8_t lastButtonState;
unsigned long lastDeboundeTime;
unsigned long debounceDelay = 50;
};

脚踏开关.cpp

FootSwitch::FootSwitch(uint8_t pin_value, FSType fs_type) {
// Initialize any variables or objects here
switch_type = fs_type;
pin = pin_value;
};

现在在 DigiPlat 类中我已经创建了该类

DigiPlat.hpp

#include "FootSwitch.hpp"  

class DigiPlat {
public:
// Constructor
DigiPlat();

//DigiPlat Variables
bool State;
FootSwitch FootSwitch1;
};

cpp 文件看起来像

DigiPlat.cpp

DigiPlat::DigiPlat(){
FootSwitch FootSwitch1(FS1, NC);
};

但是它不会像这样编译。似乎无法调用 FootSwitch 构造函数。我很好奇如何正确初始化 FootSwitch1。很快就会有另一个脚踏开关和多个其他旋钮和开关,所以请记住这一点。

我无法制定良好的提示来找到可以回答这个问题的类似问题。感谢您抽出宝贵时间回答问题。干杯。

c++ object arduino
1个回答
0
投票

有一个语法:

DigiPlat::DigiPlat()
    : FootSwitch1(FS1, NC)
{}

有些人将冒号移到第一行的末尾。 我喜欢这种风格,因为以逗号开头可以轻松添加新行。

© www.soinside.com 2019 - 2024. All rights reserved.