首页 > 解决方案 > VSC 抛出预期的 ')'

问题描述

Bulb::Bulb(int[4] pins){
    pinr = pins[0];

}

此代码是我创建的名为bulb 的类的构造函数块,VSC 抛出错误

Expected a ')' with this piece of code on the int[4] pins
                                                      ^

标签: c++class

解决方案


让我们假设简单的类结构:

class Bulb {
    int pinr;

public:
    Bulb(int*); // first method
    Bulb(int[]); // second method
};

第一种方法:正确声明参数,int[] pin无效。

Bulb::Bulb(int pin[]) { // dynamically fixing array size + correct way
    pinr = pin[0];
    std::cout << pinr << std::endl;
}

第二种方法:作为指针传递,这里没问题。

Bulb::Bulb(int* pin) { // as a pointer
    pinr = pin[0];
    std::cout << pinr << std::endl;
}

和驱动程序代码:

int main(void) {
    int tArr[] = {1, 2, 3, 4, 5};
    Bulb b(tArr); // outputs 1 by both methods

    return 0;
}

调试程序会给你:

调试第一种方法:

调试第一种方法

调试第二种方法:

调试第二种方法


推荐阅读