私は構造体やクラスを使いこなしています。試してみたかったコーディングが本当にクールです。XMacroの構造体をC++でコンソールに出力
私のコードは、3ビットのヘッダー、xマクロ、メインのcppファイルに分割されています。プログラムは終了していませんし、コードカバレッジと研磨がまだありますが、xマクロを使って構造体を構築しようとしていますが、構造体の内容を画面に出力したいと考えています。
ここに私のX-マクロ
#define X_AIRCRAFT \
X(int, Crew) \
X(int, SeatingCapacity) \
X(int, Payload) \
X(int, Range) \
X(int, TopSpeed) \
X(int, CargoCapacity) \
X(int, FuelCapacity) \
X(int, Engines) \
X(int, Altitude) \
X(double, mach) \
X(double, Wingspan)
はここに私のヘッダ(かなり不毛今)
#include <iostream>
#include <string>
#ifndef X_AIRCRAFT
#include "xmacro.xmacro"
#endif // !
using namespace std;
typedef struct {
#define X(type, name) type name;
X_AIRCRAFT
#undef X
}Public_Airplane;
//Prototypes
void iterater(Public_Airplane *p_a);
はここに私のmain()
(私はここでのコードの束をカットしました。私がやったことだだですここで要約すると、異なるプロパティを持つAirplaneクラスを作成しました。次に、Airplaneのプロパティを継承し、独自のものを作成した3つの異なるサブクラスを作成しました。私がやることは、正常に動作していない機能...)
#include <iostream>
#include <string>
#include <iomanip>
#include "aircraft.h"
#ifndef X_AIRCRAFT
#include "xmacro.xmacro"
#endif // !
using namespace std;
int main()
{
Public_Airplane p_a;
iterater(&p_a);
system("pause");
return 0;
}
void iterater(Public_Airplane *p_a)
{
//I want to print to screen the contents of my x-macro (and therefore my struct)
#define X(type, name) cout << "Value: = " << name;
X_AIRCRAFT
#undef X
}
私は今、そうしようとしている理由である、前のマクロで働いたことがありません。
int crew;
int SeatingCapacity;
int Payload
int Range;
int TopSpeed;
int CargoCapacity;
int FuelCapacity;
int Engines;
int Altitude;
double mach;
double Wingspan;
cout << "Value: = " << Crew; (and so on down the list).
私が間違っているのそれは上記のコードの出力を得ることから私を保っているもの:しかし、私の理解に、前処理のコードは次のようになりますか?
'cout <<" Value:= "name;' 'cout <<"のように書き直してください。値:= "<< name;'、おそらく? – templatetypedef
私はちょうどタイプミスに気付きました。私は<<を自分のコードとダイスに追加しました。 –