私の最後の質問にはコードが多すぎたので、私がやろうとしていることの最も簡単な例を作ろうとしました. これを例にとると..
#include <iostream>
using namespace std;
class String
{
public:
private:
};
class ClassTwo
{
public:
int memberVariable;
private:
};
class ClassOne
{
public:
ClassOne (ClassTwo&, String&);
~ClassOne();
private:
ClassTwo& classTwoReference;
String& stringReference;
};
ClassOne::ClassOne (ClassTwo& two, String& string)
: classTwoReference (two), stringReference (string)
{
two.memberVariable = 3;
}
ClassOne::~ClassOne()
{
}
int main()
{
String stringObject;
ClassTwo classTwoObject;
ClassOne classOneObject (classTwoObject, stringObject);
}
私が VST プラグインのコーディングに使用している API である JUCE には、JUCE が「String」と名付けた文字列クラスがあります。コンストラクターが何をするのか正確にはわかりませんが、このようなものを使用して String オブジェクトを作成できます。
String newString("string");
私の場合の ClassTwo は、このように ClassOne からアクセスできる public メンバー変数を持つ AudioProcessor クラスです。
two.memberVariable = 3;
私の場合の ClassOne は、GUI で使用しているカスタム コンポーネント (PixelSlider と名付けました) です。スライダー リスナーを使用してスライダーの状態を確認し、ClassTwo(AudioProcessor) のメンバー変数を変更します。上記の方法を使用してこれをうまく行うことができますが、必要な数の ClassOne(PixelSlider) オブジェクトを作成したいという問題があります。ClassTwo(AudioProcessor) のどのメンバー変数を変更するかを伝える String オブジェクトを渡したいと思います。論理的には、これは、ClassTwo メンバー変数の名前と同じ文字列値を持つ String オブジェクトへの参照を渡すことによって行われます。このような、...
ClassOne::ClassOne (ClassTwo& two, String& string)
: classTwoReference (two), stringReference (string)
{
two.(string) = 3;
}
これは JUCE では機能しませんが、さまざまな ClassTwo(AudioProcessor) メンバー変数を変更する ClassOne(PixelSlider) とほぼ同じように、さまざまなクラスの束を作成することなく、これを行う方法を誰か教えてもらえますか?