問題はかなり基本的であり、同じ質問がここにどこか確かにありましたが、私は見つけることができませんでした。オブジェクトBのオブジェクトCのメソッドへのアクセスは、オブジェクトAによって作成されました
ここに問題があります。 TopはMyCircleへのアクセス権を持ち、SetSize関数を呼び出します。しかし、MyCircleにはMyRectへのアクセス権がありません。
私がMyCircleのコンストラクタ内でMyRectへのポインタを提供している場合、私はMyRectにアクセスできますが、別の方法があるはずです。多分私はちょうどあなたの助けのためのすべての:(おかげで、それは間違っていました。
を
class Top{
public:
Rect myRect;
Circle myCircle;
void Run();
};
class Rect{
public:
int size;
};
class Circle{
public:
int size;
void SetSize(int buffer);
};
void Circle::SetSize(int buffer){
myRect.Size = buffer;
}
void Top:Run(){
myCircle.SetSize(10);
}
パラメータとして渡してみませんか?また、 'Circle'がサイズ変更時に' Rect'のサイズを変更する必要がある場合、あなたは何か間違っています:どちらのクラスも互いに関係がありません。 – Rakete1111
これら3つのオブジェクトの間で達成しようとしている関係を説明できますか? 'Circle'は' Rect'のサイズを設定できる必要があるのはなぜですか?なぜトップはできないのですか? –
トップはそれを行うことができますが、私は方法があるかどうか疑問に思っていましたサークルは "受け入れられた方法"でそれを行うことができます – Raros