いまどきのHello, world!

プログラミング言語は何であれ、最初の一歩として学ぶプログラムはHello, world!と相場が決まっています。
古くはB、そしてCのソースコードに始まって、最近の軽量言語に至るまでおおむねこの流儀が継承されているようです。

さて、C++でもHello, world!が入門書に出てくることは普通にありました。

#include <iostream>
using namespace std;

int main()
{
  cout << "Hello, world!" << endl;
  return 0;
}

これはこれでかまわないのですが、その後の展開を考えると、生の文字列を扱うのはいろいろと面倒です。
というのも、Javaにせよ、C#にせよ、諸々の軽量言語にせよ、文字列リテラルの方は文字列型なのに対して、C++の文字列リテラルはcharの配列型なので、以降の説明が面倒なのです。

だとすれば、Hello, world!の段階から次のようにしてしまえば、以降はかなり話が簡単になります。

#include <iostream>
#include <string>
using namespace std;

int main()
{
  cout << "Hello, world!"s << endl;
  return 0;
}

これであれば、文字列の扱いはすべてstring型だということにできます。
もちろん、学習が進んでいくにつれて、より低水準な部分の解説も必要になってくるでしょうが、最初のとっかかりではこれで十分な気がします。

これなら、文字列の入力も

#include <iostream>
#include <string>
using namespace std;

int main()
{
  string str;
  cin >> str;
  return 0;
}

で済みます。
1行丸ごと読み込むなら、getline関数を使えばOKです。
文字列の長さを求めるなら、"Hello, world!"s.length() で十分ですし、文字列を連結するなら "Hello, "s + "world!"s で大丈夫です。

このように、最新のC++の機能を使えば、かなり簡単にいろいろなことができるようになります。
GUIとかはプラットフォーム依存になりますが、様々なフレームワークが存在する他の言語も大して事情が変わらないと思います。

私がC++を最初に学んだころとは違い、今は本当に便利になったものです。

Bookmark and Share