表达式必须具有 class 类型错误 153

Expression must have a class type Error 153

此代码用于 mbed 上的 7 段显示,我收到错误

错误:表达式必须在 "main.cpp" 中输入 class,行:44,列:6

这是seg_7.write(livewrite);

那一行

我尝试了不同的语法,这似乎是正确的解决方案,但它不起作用?另外,当我更改写入 seg_7.write(livewrite) 时;对于其他任何事情,它都会给出同样的错误,让我想到它的语法。

--------图书馆-------------

    class ShiftReg {
    public :

        ShiftReg();    
        ~ShiftReg();
        void write(int data);

    private :
        DigitalOut *clkout;
        DigitalOut *dataout;
        DigitalOut *latchout;
};

ShiftReg seg_7();    

void refresh()
{
    char livewrite = hex_nums[lives];
    seg_7.write(livewrite);
    lcd.clear();
    drawsprite(hx,hy,HeroX,HeroY,hero);
    lcd.refresh();

}

如您所言:

ShiftReg seg_7();    

seg_7 是不带参数并返回 ShiftReg 的函数的原型,而不是 ShiftReg 类型的对象。不需要括号,只需:

ShiftReg seg_7;

将解决问题。