正如你可能從這個問題中猜測的,我對用C++進行oop編程頗爲陌生。 (我之前只做過Java) 不管怎樣,我正在嘗試爲Arduino項目創建一個自定義類並獲取提到的錯誤。下面是我的文件:C++初學者:預計'int'前的非限定符號
頁眉Touchable.h
#ifndef Touchable
#define Touchable
#include <Adafruit_TFTLCD.h>
#include <Arduino.h>
class Touchable {
public:
int posX;
int posY;
Touchable(int, int); //<-- Error here
~Touchable();
void Touchable::draw();
};
#endif
而且Touchable.cpp
#include "Touchable.h" //include the declaration for this class
#include <Adafruit_TFTLCD.h>
Touchable::Touchable(int x, int y) {
posX = x;
posY = y;
}
Touchable::~Touchable() {
/*nothing to destruct*/
}
//turn the LED on
void Touchable::draw() {
//tft.fillRect(posX, posY, 100, 100, 0x0000);
}
編輯: 編譯器消息:
In file included from sketch/Touchable.cpp:1:0:
Touchable.h:11: error: expected unqualified-id before 'int'
Touchable(int x, int y);
^
Touchable.h:11: error: expected ')' before 'int'
Touchable.h:12: error: expected class-name before '(' token
~Touchable();
^
Touchable.h:13: error: invalid use of '::'
void Touchable::draw();
^
Touchable.h:14: error: abstract declarator '<anonymous class>' used as declaration
};
^
Touchable.cpp:5: error: expected id-expression before '(' token
Touchable::Touchable(int x, int y) {
^
Touchable.cpp:10: error: expected id-expression before '~' token
Touchable::~Touchable() {
^
exit status 1
expected unqualified-id before 'int'
如果你把int x和int y放在你的頭文件中它是否被編譯? – Eddge
我看到的唯一問題是Touchable :: draw()中的額外資格(刪除Touchable :)。 –
不能,同樣的錯誤 – user7408924