このコードについてしっかり理解できているか?
今回は、初学者(自分)が第一に学んでおかなければならないC++言語について学習していきます。
#include <stdio.h>
#include <iostream>
int main (){
printf("関数を使った出力\n");
std::cout << "ストリームを使った出力\n";
return 0;
}
include とは何をしているのか?
何かしらの機能を追加させている。
あらかじめ用意されたさまざまな機能を使えることができる
~を取り込む:include
外部の装置と入手力を行う機能:iostream
input output stream:入出力ストリーム
⇨文字の入出力を簡単に行うための機能
#include <stdio.h>
#include <iostream>
int main (){
printf("関数を使った出力\n");
std::cout << "ストリームを使った出力\n";
return 0;
}
stdio.hでも同じ動作をすることができるが、
streamを使うことで、外部への装置への入出力を1つの方法でできること!
(異なる装置を同じように扱うための仕組み)
printf,scanf 関数⇨標準入出力に対して使用
fprintf,fscanf 関数⇨ファイルに対して使用
sprintf,vsprintf,sscanf関数⇨メモリに対して使用
入出力の対象によって関数を使い分ける必要があるから!
std::cout << "Helloworld" << std::endl;
これでいうcoutは標準出力ストリームオブジェクトを使用。
この部分を変えることによって、ファイルへの入出力などを可能にすることができるようになるのです。
int main()は何をしているのか?
プログラムを作る上で必ずmain関数は必要
1番最初に実行されるのがmain関数と決まっているからなのです。
intという部分については、終了時にどの種類のデータを返すかを指定しています。
⇨ return 0; として0を返却し、プログラムを終了させています。
名前空間について
そもそもなぜC++は開発されたのか?
⇨大規模開発に対応するため
⇨たくさんの人がプログラム開発に参加するため、同じ変数名・関数名がダブってしまう。
例:
Shouhizei::keisan()
Enshuuritu::keisan()
どちらもkeisan関数ですが、左側に書いてあるのがクラスと呼ばれているものです。
これが名前空間の意味で、クラスが違えば、同じ名前の関数であっても別の処理を行えるということです。
#include <streamio>
using namespace std;
int main (){
cout << "おはよう" << endl;
cout << "こんにちは" << endl;
cout << "こんばんは" << endl;
return 0;
}
cout (console out):値を出力
endl (endline):改行
using namespaceを使うことで、オブジェクト名の後にわざわざstd::をつけなくても良くなったということです。
g++は何をしているのか?
このような実行コードは見たことないでしょうか?
g++ sample sample.cpp && ./sample
g++というのは、GNUプロジェクトが作っているコンパイラ用のソフトになります。
g++ 〇〇.cpp:実行ファイルの作成
./〇〇:実行ファイルの実行
こんな感じてHelloWorldが実行されましたね。