発生しているエラーについて少し混乱しています。「SensorNode」というクラスを作成しました。各 SensorNode にはセンサーのリンク リストがあります。SensorNode の 1 つのデータ メンバーは、mySensors と呼ばれる SensorBlock (リンクされたリスト) ポインターです。mySensors は、センサー ノードが所有するセンサーのリンク リスト内の最初のセンサーを指すことになっています。SensorNode のクラス宣言は次のとおりです。
class SensorNode {
char* NodeName;
int NodeID;
LOCATION Node1;
float batt;
int func;
SensorBlock *mySensors;
public:
SensorNode(char *n, float x, float y, float z, int i, float ah);
void print();
void setOK(int o);
int getOK();
void setLOC(float longi, float lat, float h);
int amIThisSensorNode(char *n);
void addSensorToNode(sensor *s);
};
SensorBlock のクラス宣言は次のとおりです。
class SensorBlock {
friend class SensorNode;
SensorBlock * LLelement;
sensor * SensEl;
};
私の問題は、void addSensorToNode(sensor *s) 関数にあります。引数 s は、そのノードに属するセンサーのリストの最後に追加されるセンサーを指します。作成して追加するのは新しいセンサーではなく、追加するセンサーへのポインターであるため、その方法がわかりません。
これが私がこれまでに持っているものです:
void SensorNode::addSensorToNode(sensor *s) {
if(mySensors == '\0') //mySensors is first initialized to NULL
{
mySensors = s; //I get an error on this line.
}
else {
}
}
上記の行で発生したエラーを修正する方法がわかりません。また、mySensors が null に等しくなくなったときに「else」に何を入力すればよいかわかりません。上記のエラーを解決すれば、新しいセンサーの追加プロセスをよりよく理解できるかもしれません。あなたが提供できるどんな助けでも前もってありがとう!!