私はカスタムクラスのオブジェクトの配列をbcLEDにしようとしていますが、エラーが発生しています。 エラー: 'operator ='に一致しません(オペランドの種類は 'bcLed'と 'bcLed *')C++だから、エラー: 'operator ='に一致しない理由
何故私にその理由を教えてもらえますか?私はそれが単純なものになることを知っています。
なぜ私はここにC++で不特定の長さの配列を作成し、それにオブジェクトを追加するたびに新しい行を追加する方法があるのですか?
void PopulateLEDS(){
int i;
bcLed ledArr[17];
for (i = 0; i< 16; i++)
{
ledArr[i] = new bcLed();
ledArr[i].id = i;
ledArr[i].charge = 0;
}
}
OKだから私は避け、私はC++の構文でアップトリップい場所を確認するようにコードの本体を貼り付けるつもりです1万記事を作成するための
より多くの助けを必要としています。
lattestエラーが
/Users/bencawley/Documents/Arduino/Test/Bens_Lights/Bens_Lights.ino: In function 'void PopulateLEDS()':
Bens_Lights:49: error: expected primary-expression before 'public'
public:bcLed ledArr[17];
^
Bens_Lights:52: error: 'ledArr' was not declared in this scope
ledArr[i].id = i;
^
/Users/bencawley/Documents/Arduino/Test/Bens_Lights/Bens_Lights.ino: In function 'void BensPattern(uint8_t)':
Bens_Lights:69: error: 'ledArr' was not declared in this scope
strip.setPixelColor(i,0, 0, ledArr[i].charge, 0);
^
Using library Adafruit_NeoPixel at version 1.0.6 in folder: /Users/bencawley/Documents/Arduino/libraries/Adafruit_NeoPixel
exit status 1
expected primary-expression before 'public'
をされ、私のコードは次のとおりです。
class bcLed{
public:int id;
public:int charge;
void incCharge(int amt)
{
charge = charge+amt;
if(charge >= 255){charge = 255;}
}
};
void setup() {
strip.begin();
strip.show(); // Initialize all pixels to 'off'
PopulateLEDS();
}
void loop() {
// Some example procedures showing how to display to the pixels:
BensPattern(45);
}
void PopulateLEDS(){
int i;
bcLed ledArr[17];
for (i = 0; i< 17; i++)
{
ledArr[i].id = i;
ledArr[i].charge = 0;
}
}
void BensPattern(uint8_t wait)
{
uint16_t i, j;
int rn = rand() % strip.numPixels() ;
for (i = 0; i<strip.numPixels(); i++)
{
strip.setPixelColor(i,0, 0, 0, 0);
}
for (i = 0; i<rn; i++)
{
strip.setPixelColor(i,0, 0, ledArr[i].charge, 0);
ledArr[i].incCharge(1);
}
strip.show();
delay(wait);
}
あなたはJavaの背景から来ていますか? – StoryTeller
17のbcLed配列があります。あなたは 'bcLed * 'を割り当てようとしています。 'bcLed *'の右辺を取る 'bcLed'の' operator = 'オーバーロードを定義していない限り、それはうまくいきません(とにかくそれを望んでいないでしょう)。あなたはその割り当てステートメント*は一切必要としません。あなたはすでに17の 'bcLed'オブジェクトを持っています。 – WhozCraig
'ledArr [i]'は 'bcLed'です。 'new bcLed()'は 'bcLed *'を返します。 – zvone