初心者目線のC++日記8 関数
久しぶりに更新。今、いくつも同時進行で勉強しています。とりあえずHTML.CSSは正直誰でも出来ると分かりました。というかこのウェブデザイナーの仕事、糞ほどめんどい作業をいかに効率よく、そしてテンプレファイルを客に突き付けてもバレないように胡麻化す仕事なんだなっと思いましたわ。ええ。いやまじでこれで金もらえるんだからやっときゃよかったよ。とともに、ぬくぬくと奇麗な設備のオフィスで、コーヒー飲みながら週休2日、定時、ボーナス有。。人生と仕事舐めてるだろこいつら。。と言った所で学歴社会。。学歴に必然的に差を付け、貧困を生み出すことで社会が上手く回る。。その歯車の一部でしょうから結局どっちもどっちか。。。。
とりあえず。現在、CGモデリング、ゲームエンジン、そしてC++を同時進行で勉強しています。
やはりC++を最初に選んでよかった。
難しいとされているC++。動画で探してもカシコが解説してるもんだから何がなんやらさっぱり。カシコの基準はカシコにしか無いってことがカシコにはわからんらしい。。だからあいつら初心者や一般人が分からない部分を分からないまま解説してるもんだから。。。でも、ゲームエンジンにしろCGモデリングを勉強していく中でC++が度々出てきて共通の情報なもんだから脳が(欲しい!欲しい!)と信号を出してきて仕事中でもそれらが埋め尽くしてきて。。いい状態なんだよ。今。
だから初心者さん(俺もだけど)は絶対C++を最初にするべきだとは思う。
玄人どもはあれやこれや。と言うとるけど、騙されないように。絶対にC++だから。現状ね。これからマシン自体の発展、言語、プログラマーの発展でもっと簡単になって言語が変わるかもしれないけども。。
基本的に世の中は「自分より他人」と思ってる人は1割もいないから。騙されないように。操られないように。
本題
関数。引数。戻り値。
関数とは、アホな俺が単純に説明すると、足し算。そのもの。
足し算は、1+1=2。となる。この前の数字と後ろの数字を足して、その足した数字を出す。それが足し算。
関数とはその足し算や他の処理の概念そのものを式に表すこと。
つまり
〇+〇=〇になるぜ!
という概念を機械に読み込ませるぜ。。ってこと。思った以上に機械ってアホナンダナって思った。
でこの概念を機械に読み込ませるには❶と❷と❸が必要になってくる。
(処理、式による)
それが引数。と戻り値。
足し算の場合だと、❶❷が引数で、結果戻り値が❸って事。
実際、数学的なんだけど関数自体は国語的な思考で考えたほうがいいと思う。
では実際にC++的に書いてみる。
1 int a,b;
2 a=2,b=2,
3 A=NULL;
4 A=a+b;
5 cout<<A<<"です。";
これがふつうに足し算。を行った場合。
NULLはまだ数値が入ってませんけどのちのちに使いまっせ。みたいな感じで解釈しとる。
でこの足し算を山ほどするプログラムがあったとしたら4行目の○+〇を何度も何度も書かないといけない。(この例の場合だとただの足し算だから式を省略する必要性は感じられないけども)その時に関数を定義しておけば、
4行目を省略できるということ。そして複雑なプログラム、式を作れるということになる。
![](https://assets.st-note.com/img/1671716682800-o711Wn9G8b.png)
関数を使うにはメイン関数以前に「関数使いまっせ」と伝えないといけない。それが6行目。
そして使う関数はメイン関数以降に定義する。それが28行目。
28行目から順に説明していくと add が関数名。命名のルールはおおよそほかのルールと勝手に共通だと思ってる。
num1、num2は引数で、
処理内容は29行目、変数rを宣言し、
30行目、引数1と引数2を足して変数rに代入しなさい。そして31行目そのrの数値を返しなさい。という処理内容だ。
初心者目線で言えば。。。
もう最初の変数やらで手一杯なのに、関数を定義し宣言しプロトタイプ宣言し引数、戻り値。。。。。。とかそれだけ言われても、それが何で、どこに行って、なにをしていて、どうなるねん。。ってなってカシコの言葉なんて入ってこんねん。。というかカシコってほんまに賢いんか?って思った。
だって1+1=2って考えなくてもわかるやん?でもカシコって1は何で+は何で=は何。って考えて記憶しなきゃ。。。。
かしこって機械じゃね?