2011-12-06 9 views
0

のコードが含まれていません。 WirelessクラスはMirfインスタンスを使用します:の#includeは、本当に私は次のように定義されたクラスを持つC++

Wireless.h

#include <Mirf.h> 

class Wireless { 
public: 
    void init(void); 
}; 

Wireless.cpp

#include <Wireless.h> 
#include <Mirf.h> 

Wireless::init(){ 
    mirf.init(); 
} 

私の主な方法:

MAIN.CPP

#include <Wireless.h> 
#include <Mirf.h> 

Wireless wireless = Wireless(); 

int main(){ 
    wireless.init(); 
} 

コードは正常にコンパイルされますが、Mirf.cppの[Some Code Here]は呼び出されません。

私のコードには何が問題なのですか?

+1

プリントバッファをフラッシュする必要がありますか? –

+1

Jimのコメントに追加するには、 'printf'文字列の最後に' \ n'を入れてみてください – Shahbaz

+0

'Mirf'は' Mirf24L'なので 'Mirf.init();'は ' Nrf24 :: init() 'を実行します。代わりに 'Mirf24L :: init()'を探していますか? –

答えて

5

コードが#includeであるという理由だけでは、そのコードが呼び出されるわけではありません。 main関数のみが自動的に呼び出され、その他の関数は式の中で参照される必要があります。

+1

それは部分的に真実です。何らかの型の静的インスタンスがある場合、 'X :: X()'(または指定されたコンストラクタ)が 'main'の前に呼び出されます。たぶんその場合、多分そうではないかもしれませんが、与えられたコードから、それは推測です。 – bitmask

+0

@bitmask:私はあなたがネームスペースまたはクラスの静的メンバーを意味していたと思います。静的なローカルは、関数が初めて実行されるまで評価されません。しかし、私はイニシャライザを "表現"の傘の下に含めています。 –

+0

私は参照してください。まあ、それはストレッチであることを認めなければなりません:) – bitmask

関連する問題