次のヘッダー ファイルがあるとします。
#ifndef TEST_HEADER
#define TEST_HEADER
class myFoo
{
public:
myFoo(unsigned long *ulbaz):
baz(ulbaz)
{
*baz++;
}
~myFoo()
{
*baz--;
}
private:
unsigned long *baz;
};
#define DEFINE_A( a ) myFoo bar( a);
#define DEFINE_B( b )
#endif // test_header
コード例:
// code.cpp
#include "test.h"
unsigned long mylong = 0L;
int main()
{
DEFINE_A( &mylong);
DEFINE_B( &mylong);
}
ご覧のとおり、DEFINE_B
空です。私が理解していないこと:DEFINE_B
が呼び出されるたびに、 からデストラクタに入り、コールmyFoo
スタック内でそれを見ることができます - どうすればよいですか? 私の知る限り、空define
は に展開され;
ます。
編集: このコードは機能するようになりました。