C++でコメントを書く際は、//を2つ並べます。
Cでコメントを書く際は、/* でコメントを始め、*/までをコメントとしていましたが、そちらも使用可能です。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
これまでストリームやマニピュレータを使用する時は、std::cout あるいは std::endlなどと書いてきました。ところでこのstd::はなんなのでしょうか。

std::は名前空間です。名前空間とはある変数や関数を一つのグループとして扱う機能のことです。
標準入出力ストリームや標準入出力マニピュレータはstd名前空間内に存在する為、std::を付けていたのです。しかし、毎回std::を付けるのは辛いので、std::は省略できます。

ソースファイルのいずれかの場所にusing namespace std;と書いて下さい。直訳で名前空間stdを使用しますですね。

この行がコンパイラに読まれると、同一ソースファイルのそれ以降の行はstd::を付けなくてもストリームやマニピュレータを検出できるようになります。内部的には、識別されない関数を見つけると、std::で補完するといった形です。

問5:using namespace std;を使用して、画面にhelloと出力するプログラムを書きなさい。

名前空間はプログラマが定義することもできますが、作成する機会は少ないのでここでは割愛します。名前空間はクラスよりさらに大きい概念と考えればよいでしょう。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
これまでクラスにはpublic:を指定してきました。しかしここにはprivate:を指定することもできます。

private:を指定すると、その行以下のメンバには、そのクラスのメンバしかアクセスできなくなります。このようなメンバ(クラスに所属する変数や関数)を非公開メンバと言います。
つまりこのままではSecretNumberの値は他のクラスやmain関数から知ることはできません。

ところでアクセス指定子(public:など)は、書いた行以下に範囲が及ぶことを覚えているでしょうか?
つまり、private:の下から更にpublic:と書けば、public:以下の行は公開メンバになるということです。


このように、同じクラスでも公開領域と非公開領域を分けることができるのです。
非公開領域には、ほかのクラスやmain関数から変更されて欲しくない変数を記述するのが主流です。
例えば、ユーザーIDを保持する変数がmain関数から呼び出せるとどうでしょうか?
うっかりプログラマがユーザーIDを変更する関数を書いてしまう(あるいはバグによりそうなってしまう)可能性もあります。このようなヒューマンエラーを回避する為に領域を分ける機能が用意されているのです。

では、private:メンバを参考にしたい時はどうすればよいのでしょうか。
多くのプログラマは、get系の関数をpublic:にて実装してmain関数からはその関数を呼び出します。

private:メンバは、同じクラスからしかアクセスできないのでした。
その為このような関数を作成し、main関数側でSecretNumberの情報が必要な時は、GetSecretNumberを発動します。仮に取得したSecretNumberの値を書き換える処理がmain関数で行われるとしても、GetSecretNumberから返却された値は、本物のSecretNumberのコピーでしかない為、SecretNumberの値が書き換えられることはありません。GetSecretNumberで取得した値は、そのまま捨てても構いません。

では、main関数からGetSecretNumberを使用してSecretNumberを参考してみましょう。

1


最も、今回はSecretNumberを初期化していない為、値は不定なのですが。(環境により不定の値は変わります)