オブジェクト指向デザイン、トーナルハーモニーのモデリング方法
コード、音階、ハーモニーを分析するプログラムをC ++ 11で書き始めました。私が設計段階で抱えている最大の問題は、音「C」が音、コードのタイプ(Cmaj、Cmin、C7など)、およびキーのタイプ(Cmajor、Cminorのキー)であることです。間隔(マイナー3、メジャー3)でも同じ問題が発生します。 私は、プログラム内のすべての「シンボル」の基本クラスである基本クラスであるトークンを使用しています。例えば: class Token { public: typedef shared_ptr<Token> pointer_type; Token() {} virtual ~Token() {} }; class Command : public Token { public: Command() {} pointer_type execute(); } class Note : public Token; class Triad : public Token; class MajorTriad : public Triad; // CMajorTriad, etc class Key : …