私はAdaコードをC++コードに変換する必要があり、できるだけAdaコードと似ています。条件付きのAdaレコードをC++に変換
type Shape is (Circle, Triangle, Rectangle);
type Colors is (Red, Green, Blue);
type Figure(Form: Shape := Circle) is
record
Filled: Boolean;
Color: Colors;
case Form is
when Circle =>
Diameter: Float;
when Triangle =>
Left_Side: Integer;
Right_Side: Integer;
Angle: Float;
when Rectangle =>
Side_1: Integer;
Side_2: Integer;
end case;
end record;
を次のようにエイダ・コードは、私が使用することができます知っているclass
が、私は彼がstruct
探していると仮定し、質問の言語と教師の人格によって判断します。私はstruct
の内部で異なるケースに必要なロジックをどのように作成するかについてはっきりしていません。教師は非常に特殊なので、私は、最小のメモリフットプリントが必要と仮定します。
私はCSCの学生ですので、解決策が簡単な場合は私を許してください。 ありがとう!
更新: 最終的な答えは私が思ったよりも簡単でした。
enum Shape {Circle, Triangle, Rectangle};
enum Colors {Red, Green, Blue};
struct Figure {
bool Filled;
Colors Color;
Shape Form;
union {
float Diameter;
struct {
int Left_Side;
int Right_Side;
float Angle;
} tri;
struct {
int Side_1;
int Side_2;
} rect;
};
};
いつものように私はそれをよく考えました。すべてのあなたの入力をありがとう!
ようこそStackOverflow!あなたは "**クラス**を使用することができます**構造**を探しています"と言います。 FYI、 'class'と' struct'はC++でほぼ同義です。http://stackoverflow.com/questions/92859/what-are-the-differences-between-struct-and-class-in-cを参照してください。 –
@Robᵩありがとう。パーミッションの違いを理解していますが、** struct **、** enum **、** union **型を暗黙的にしか使用できないという事実によって問題は複雑になります。説明をありがとうございます。 – hurricaneMitch
@ Rob Asによると 'class'と' struct'はC++ではほぼ同義ですが、スタイルの問題として、 'struct'キーワードは主に[POD](http://en.wikipedia.org/ wiki/Plain_old_data_structure)タイプ。あなたが言っていることは、あなたが継承を使用するはずがないということです。 –