2015-02-23 33 views
1

當我在我的頭文件中創建obj時遇到問題。我無法在構造函數中插入值。 (錯誤:期望一個類型說明符)。 我試着添加常量,但它不起作用。 爲什麼?我能怎麼做?謝謝!錯誤標題C++創建obj時

lcd.h用於

#ifndef __LCD__ 
#define __LCD__ 

#include "Device.h" 
#include "Arduino.h" 
#include <LiquidCrystal_I2C.h> 

class Lcd: public Device { 

    public: 
    Lcd(); 

    void switchOn(); 
    void switchOff(); 
    void setFirstRow(String str); 
    void setSecondRow(String str); 

    private: 
     LiquidCrystal_I2C lcd(0x27, 16, 2);  // ERROR 

}; 

ENDIF

Lcd.cpp

#include "Lcd.h" 
#include "Arduino.h" 

Lcd::Lcd(){ 
    lcd.init(); 
} 

void Lcd::switchOn(){ 
    lcd.backlight(); 
} 

void Lcd::switchOff(){ 
    lcd.clear(); 
    lcd.noBacklight(); 
} 

void Lcd::setFirstRow(String str){ 
    lcd.setCursor(0,0); 
    lcd.print(str); 
} 

void Lcd::setSecondRow(String str){ 
    lcd.setCursor(0,1); 
    lcd.print(str); 
} 
+0

'LiquidCrystal_I2C LCD('是一個函數聲明的開始。 – immibis 2015-02-23 23:40:52

回答

2

如果您正在使用C++ 11,你應該能夠使用:

LiquidCrystal_I2C lcd = LiquidCrystal_I2C(0x27, 16, 2); 

如果您使用的是早期版本的C++,y您需要將初始化代碼放入構造函數的定義中。

2

Let's此聲明:

LiquidCrystal_I2C lcd; 

而且你可以使用這個sintax在構造

Lcd::Lcd() : lcd(0x27,16,2){ 
    lcd.init(); 
}