[ad_1]
ピアとしてクラスを作成し、このクラスにいくつかの変数を持っています。 私の変数の1つは配列です。 そして、クラスの typedef リストをいくつか作成します。 ここまではすべて正しいですが、「 int AvailableResource を配列することができます[30];” 値を取得できず、エラーが発生しました!!! どうすれば修正できるかわかりません。
お願い助けて。
エラーはまさにこのセクションで発生します=>
UploadRate(ur)、DownloadRate(dr)、AnswerRate(ar)、CHNumber(chn)、AvailableResource(AR){}
私が試したこと:
<pre>class Peers{ public: int UploadRate; int DownloadRate; int AnswerRate; int CHNumber; int AvailableResource[30]; public: Peers(int ur=0, int dr=0, int ar=0, int chn=0 , int AR=0): UploadRate(ur), DownloadRate(dr), AnswerRate(ar), CHNumber(chn), AvailableResource(AR){} }; typedef std::list<Peers> BaseList; BaseList FreindlyList[5], ReqularList[5], NewCH[5];
解決策 1
エラーメッセージが何であるかを私たちに伝えることを省略したので、問題は配列に値を割り当てようとする方法にあると推測しています。 これを試して:
C++
Peers(int ur=0, int dr=0, int ar=0, int chn=0 , int AR=0): UploadRate(ur), DownloadRate(dr), AnswerRate(ar), CHNumber(chn), AvailableResource{AR}{} ^ ^ | | Use braces here, not parentheses.
今後は、エラー メッセージの全文を忘れずに含めてください。
解決策 2
を初期化しようとしています int
配列 AvailableResource
シングルで int
価値 AR
. これは許可されていないため、コンパイラは正しくエラーを出力します。
呼び出し元が提供した値で配列を初期化したい場合は、配列 (または別の種類のコンテナー) を Peers
コンストラクタ。 何かのようなもの
C++
Peers(int ur=0, int dr=0, int ar=0, int chn=0 , int AR[]=nullptr, size_t ARsize=0): UploadRate(ur), DownloadRate(dr), AnswerRate(ar), CHNumber(chn) { if ( AR != nullptr) { for (size_t n = 0; n<ARsize && n<30; ++n) AvailableResource[n] = AR[n]; } }
[ad_2]
コメント