非常に単純ですが、エラーを削除できません。複素変数に整数値を格納したい。
int int2 =2;
comp *cal = int2;
ありがとう
非常に単純ですが、エラーを削除できません。複素変数に整数値を格納したい。
int int2 =2;
comp *cal = int2;
ありがとう
標準の複素数を使用している場合 (つまりcomp
、 のエイリアスstd::complex<something>
):
comp cal = int2;
標準の複合型でない場合comp
は、それがどのように定義されているかを確認する必要があります。それがどのように機能するかを推測する方法はありません。
更新:あなたのコメントについて:それはカスタム集計タイプでありQ
、実際の部分であると仮定しているため:
comp cal = {0, int2};
ただし、代わりに標準型の使用を検討する必要があります。
あなたのコメントの残りの部分について: どうしてポインタを使わなければならないのですか? それは非常識です。しかし、本当に必要な場合:
comp cal_ = {0, int2};
comp *cal = &cal_;
または、何らかの理由で動的割り当てが必要な場合 (ほとんどの場合必要ありません。必要な場合は、生のポインターではなくスマートポインターを使用する必要があります):
comp *cal = new comp{0, int2};
// and don't forget to delete it when you've finished with it
delete cal;
または、2011 年より前の言語に固執している場合:
comp *cal = new comp;
cal->I = 0;
cal->Q = int2;
しかし、繰り返しますが、何をしなければならないと考えていても、ここにポインターが必要ないことはほぼ確実です。