質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

2回答

1145閲覧

変数の複数定義 c++

t.s_k

総合スコア61

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2019/03/09 09:48

編集2019/03/09 10:58

同じ型の変数を複数指定する際、拡張性を考えると直下の記述はセンスがない様に思います。
複数定義する場合は一般的にどの様に定義するのでしょうか。

cpp

1#include <complex> 2 3int main(){ 4 float xa, ya, xb, yb, xc, yc, xd, yd; 5 std::complex<float> 6 c_1 (xa, xb), 7 c_2 (xb, yb), 8 c_3 (xc, yc), 9 c_4 (xd, yd); 10}

#期待の記述(エラー)

cpp

1#include <complex> 2 3int main(){ 4 float xa, ya, xb, yb, xc, yc, xd, yd; 5 std::complex<float> 6 [ 7 c_1 (xa, xb), 8 c_2 (xb, yb), 9 c_3 (xc, yc), 10 c_4 (xd, yd), 11 ]; 12}

cpp

1#include <complex> 2 3int main(){ 4 float xa, ya, xb, yb, xc, yc, xd, yd; 5 std::complex<float> 6 c_1 (xa, xb); 7 c_2 (xb, yb); 8 c_3 (xc, yc); 9 c_4 (xd, yd); 10}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

LouiS0616

2019/03/09 10:08

c_nは関数ではなく変数では。
t.s_k

2019/03/09 10:57

修正します。 ありがとうございます!
guest

回答2

0

ベストアンサー

同じ型の関数を複数指定する際

変数の間違いでしょうか?

そもそもc_1というのが後から配列にしたくなりそうな名前なので

c++

1std::complex<float> c[] = {{xa, xa}, (xb, yb}, {xc, yc}, {xd, yd}};

複数行に分けたい時は、私は

c++

1std::complex<float> c_1(xa, ya), 2 c_2(xb, yb), 3 c_3(xc, yc), 4 c_4(xd, yd);

しますが、変数名になんらかの規則性がないと見栄えがわるくなるので

c++

1std::complex<float> 規則_1(xa, ya), 2 規則_2(xb, yb); 3 4std::complex<float> きそく_1(xa, ya), 5 きそく_2(xb, yb);

のように分けた方が見栄えがよいでしょう。

そして、規則性がある場合は配列にしてしまった方がよい場合も多いです。

投稿2019/03/09 10:17

asm

総合スコア15147

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

C++

1 std::complex<float> 2 c_1 (xa, xb), 3 c_2 (xb, yb), 4 c_3 (xc, yc), 5 c_4 (xd, yd);

これは、その上の float の宣言と同様に、

C++

1 std::complex<float> c_1 (xa, xb), c_2 (xb, yb), c_3 (xc, yc), c_4 (xd, yd);

と改行を入れずに、宣言すべきものではありませんか?
コーディングルール、趣味の問題等で、色々な記述方法があると思いますが、片方は、改行無し、もう片方は改行有りなので、違和感があるのではないかと思います。
まあ、別の記述とすれば、

C++

1 std::complex<float> c_1(xa, xb); 2 std::complex<float> c_2(xb, yb); 3 std::complex<float> c_3(xc, yc); 4 std::complex<float> c_4(xd, yd);

かと。

投稿2019/03/09 10:04

pepperleaf

総合スコア6383

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問