C++での経験が不十分で申し訳ありませんが、私のコードで何が起こっているのか、なぜオブジェクトを初期化できないのか、問題を理解しています。カスタムクラスからオブジェクトを初期化できない問題
:私は、次の関連するコードが含まれています、私はgithubの上で見つかったクラスを使用していは:
Bee.h(私はかなり確信しているコードは関係ありませんが削除しました)
class Bee { public: Bee(HardwareSerial *serial, uint32_t baud); private: // Prevent heap allocation void * operator new (size_t); void * operator new[] (size_t); };
Bee.cpp
#include "Bee.h"
Bee::Bee(HardwareSerial *serial, uint32_t baud) {
// set some variables
}
ので、githubの上の例では、Arduinoの彼らuのためのものですBee XBee(&Serial1, 9600);
行で、setup()およびloop()関数の上にある.inoファイル内のXBeeという名前のオブジェクトを初期化します。
私は、蜂オブジェクトを必要とするクラスを構築しています。だから私はこの試みた:
ADXBee.h
#ifndef _ADXBee_h
#define _ADXBee_h
#include "Bee.h"
class ADXBee {
public:
ADXBee();
private:
Bee _bee;
};
私はこれを初期化するために、いくつかの異なる方法を試した
#include "ADXBee.h"
ADXBee::ADXBee(){
// Initialize serial
Serial1.begin(9600);
// Initialize Bee
Bee _bee(&Serial1, 9600);
}
ADXBee.cppと、残念ながら私はちょうどドン私はそれをGoogleにできる方法でこの質問をする背景がありません。
ADXBee.h:66:30: warning: non-static data member initializers only available with -std=c++1
1 or -std=gnu++11 [enabled by default]
ADXBee.cpp:In constructor 'ADXBee::ADXBee()'
ADXBee.cpp:16:16: error: no matching function for call to 'Bee::Bee()'
ADXBee*:ADXBee(){
ADXBee.cpp:candidates are
Bee.h:Bee(SoftwareSerial*, uint32_t)
Bee.h:candidate expects 2 arguments, 0 provided
Bee.h:Bee(HardwareSerial*, uint32_t)
Bee.h:candidate expects 2 arguments, 0 provided
Bee.h:Bee(const Bee&)
Bee.h:candidate expects 1 argument, 0 provided
Error compiling
"C++での経験が不足"の場合、C++を学ぶ適切な方法は、 "githubで見つかったクラス"を解読するのではなく、本を読むことです。それはあなたがC++を学ぶ方法ではありません。良い本を読んでC++を読んで、他人のコードを理解できるようになるまで、あなた自身ですべてを読んでください。 –
私はそれが本当であることを認識しており、同時に生産性を目指して読んでいます:/ – eeScott