解决 C++中 vector 声明错误 expected parameter declarator

保留现场

QVector<uint32_t> buttonPins(3);

声明了一个长度为 3 的vector数组,编译是会报这个错误。

探究原因

编译器可能无法区分这是一个成员函数声明还是一个成员变量声明,也就是产生歧义。

解决方法

方法 1:

QVector<uint32_t> buttonPins = QVector<uint32_t>(3);//明确这是一个成员变量

方法 2:默认构造函数里面进行成员变量的初始化

MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent),
    ui(new Ui::MainWindow),buttonPins(3){}

方法 3:列表初始化

QVector<uint32_t> buttonPins{0, 0, 0};