ファイルからヘッダを作るBase.hC/C++プリプロセッサ名前
class Base {
}
ファイルファイルB.h
class B : public Base {
}
ファイル
class A : public Base {
}
A.h C.h
#define D_CLASS A
ファイルC.cpp
#include "c.h"
#include D_CLASS##.h // <--- how to make the header from class name?
Base * pBase = new D_CLASS() ;
これを行うことでインセンティブ...異なるオペレーティングシステムをサポートして
システム、各OSは、特定の機能を提供するために作成するためのビルダーにクラスの名前を教えてファイルヘッダました。
ユーザーが、それは彼がその機能と彼の特定のクラス名を定義することも必要である新しいOSだ追加されます。これは、基本的には、このように展開
#define PP_ADD_HDR_SUFFIX(x) PP_ADD_HDR_SUFFIX_IMPL(x)
#define PP_ADD_HDR_SUFFIX_IMPL(x) x.h
#define PP_QUOTE(x) PP_QUOTE_IMPL(x)
#define PP_QUOTE_IMPL(x) # x
#define CLASS_HEADER_NAME(name) PP_QUOTE(PP_ADD_HDR_SUFFIX(name))
#include "C.h"
#include CLASS_HEADER_NAME(D_CLASS)
Base * pBase = new D_CLASS();
:
ここでは、なぜCタグ? –
これを行わないでください。あなたのツールを使って作業しないでください。 – Ben
は、#include D_CLASS ## '入力している。そんなに簡単に'の#include a.h'を入力するよりもを 'H? – NathanOliver