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

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

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

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

Q&A

解決済

3回答

605閲覧

C++ 初心者 関数について

mochiwarabi

総合スコア10

C++

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

0グッド

0クリップ

投稿2020/04/18 13:55

編集2020/04/18 14:05

https://atcoder.jp/contests/apg4b/tasks/APG4b_p
現在こちらの教材を学習しており、返り値がない関数という部分でつまづいております
void hello(string text) {
cout << "Hello, " << text << endl;
return;
}
という部分なのですが、
1行目は返り値のないstring型のtextという関数ということでしょうか?
2行目はHello,とtext(?)を出力するということでしょうか?
この2行目の部分が特に分かりません。
なるべく簡単に教えていただけると幸いです

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

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

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

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

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

LouiS0616

2020/04/18 13:58

リンク先のコードと一部異なるようですが。
mochiwarabi

2020/04/18 14:05

申し訳ございません 間違っているコードを訂正しましたので、もう一度ご回答いただけないでしょうか
guest

回答3

0

C++

1void hello(string text) { 2 cout << "Hello, " << text << endl; 3 return; 4}

1行目は返り値のないstring型のtextという関数ということでしょうか?

間違いです.
返り値がないのはその通りですが, これは「string 型の引数を1つ取る」「helloという関数」です.

C++ では関数を呼び出す際に括弧を書くと思いますが, ここで定義するhello 関数は括弧内に「結果が string として扱える式」を書いて呼び出すことになります.

式と言っても「string 型の変数ひとつだけで演算要らないじゃん」という場面も多いですが, そんな単純なモノでも一応は「式」なのだと考えて下さい.

この hello 関数が呼ばれるとき, hello 関数の中身が実行される前にまず呼び出しの括弧内に書かれた式が演算され, その結果が引数である text に入った状態で hello 関数の中身が実行されます.

なので

2行目はHello,とtext(?)を出力するということでしょうか?

で合っています. text には hello 関数を呼び出した側が指定した値が入っています.
「呼び出し側で text の内容を変えることが可能である」との言い換えも出来るかと思います.

投稿2020/04/18 14:34

kagilinn

総合スコア354

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

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

mochiwarabi

2020/04/18 15:01

なるほど! 丁寧な解説ありがとうございます!!
guest

0

ベストアンサー

1行目:返り値なし文字列を引数とする関数
2行目; "Hello, " と text のナカミをコンソールに出力
3行目:関数終了

投稿2020/04/18 14:18

y_waiwai

総合スコア88042

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

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

mochiwarabi

2020/04/18 15:02

なるほど 簡潔でとても分かりやすかったです
Taka_Heybot

2020/04/26 17:44

Hello world!! 頑張って????
guest

0

投稿2020/04/18 23:45

katoy

総合スコア22324

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

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

episteme

2020/04/26 18:27

そのふたつ、グローバルに using namespace std; してる時点であんま薦めたくない...
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問