C++/はじめに

出典: フリー教科書『ウィキブックス(Wikibooks)』
< C++
ナビゲーションに移動 検索に移動

開発環境を整える[編集]

Windowsの場合[編集]

Visual Stuido による方法[編集]

2020年現在、マイクロソフト社が無料配布しているVisual Studio コンパイラで、C++が無料で使える。(昔は Visual Studio は有料だったが、いまは無料。)

※ しかし、Visual Studioは起動に時間が毎回けっこう掛かるので(数分ていど)、できれば、オープンソース系のC++コンパイラなど(たとえばWindows版GCC-C++であるMinGWなど)、Visual Stuido とは別の C++コンパイラを使ったほうが簡単である。

また、Visual Studio の利用には、無料のアカウント登録が必要である。

MinGW[編集]

MinGWというソフトウェアが、GCC をWindowsに移植している。

これをインストールして起動すると、

インストール・マネージャーで、どの言語をインストールするか聞かれるので、

mingw32-gcc-g++-bin

というのを選ぶ。

「g++」と書いてあるが、C++のことである。C++版のgccのことをよく、「g++」などと略記する。


インストールできたかの確認のため、バージョン確認をしてみて、

g++ -v

としてみよう。

インストール先のフォルダなども表示もされるので、長いメッセージも表示されるが、末尾のほうに

gcc version 8.3.0 

のようにバージョン番号が表示されるハズである。


さて、作成したソースコードをコンパイルするときのコマンドは、Windowsアクセサリの『コマンドプロンプト』(DOSプロンプト)で、

g++ ファイル名.cpp

である。(あらかじめソースコードのファイルに拡張子「.cpp」をつける事)

すると、「a.exe」というファイルが作成されるので、

a.exe

を入力すれば実行できる。(「a」だけでも実行できるが、Linuxでは「a.out」と入力するので、Windowsでも対応のため「a.exe」と覚えたほうがイイ)


もしファイル名を付けたい場合、

g++ ファイル名.cpp -o つけたいファイル名

とすれば、

つけたいファイル名.exe

の書式の名前で、実行ファイルが新規されるので、実行するには

コマンド端末で

つけたいファイル名

で入力すればいい。


Windows版g++で文字表示などで日本語を使う場合、文字コードはANSI(Shift-JIS)にしないと、日本語のぶぶんが文字バケする。

Linuxの場合[編集]

Linux(リナックス)で「C++(シープラスプラス)」プログラムを開発する場合、コンパイラ「gcc-c++」を用意する。(リナックス の一っ種「Fedora」(フェドラ)で実機で確認。)

なお、「gcc」(ジーシーシー)については、『C言語/はじめに#開発環境を整える』を参照せよ。


とにかく、C++プログラミングのために、まず「gcc-c++」をインストールする必要がある。リナックスをインストールしたばかりの標準状態では、まだ「gcc-c++」はインストールされてないので、自分で追加インストールする必要がある。

「gcc-c++」を利用するには、コマンド端末(いわゆる「ターミナル」(terminal) )を使い、端末内部にてコマンド「g++」を入力する。つまり、

g++ ファイル名.cpp

のようなコマンドである。 (リナックスfedora26で動作を確認)

このように、コマンド端末(いわゆる「ターミナル」(terminal) )が必要である。ターミナルの使い方が分からない場合は、まず、ターミナルの使い方を勉強する必要がある。 (コマンド端末の最低限の使い方については、『プログラミング/プログラミング初心者むけの共通知識』で紹介してある。)

clang[編集]

GCC系のコンパイラ以外にも、clang(発音は不明だが「クラン」が通称)というオープンソースのC言語系コンパイラがある。

なお、(Linuxではないが)FreeBSDというオープンソース界では有名OSでは、clangが標準のC言語コンパイラとして採用されている。マックで有名なアップル・コンピュータも、clangを援助している(マックはOSにBSD系のノウハウを取り入れている)。


さて、その clang のインストールは、Fedora なら

sudo dnf install clang

でclang用の標準C言語コンパイラもC++コンパイラも一緒に入る。

C++のコンパイルのコマンドは

clang++ ファイル名.cpp

である。

C++の用途[編集]

C++には、下記のような利点があります。

Windowsで標準的な言語として採用されている[編集]

一般的には、Windowsでアプリケーション開発をする際、Windowsが提供するコンパイラ Visual Studio において基盤のプログラミング言語として採用している言語が、C++系のVisual C++ および C#系のVisual C# ですので、Windowsアプリを作成したい場合に、C++ の知識が必要になる可能性が高いです。(C#はC++とは別の言語です。また標準C言語とのソース互換性は、C#には無いです。)

なお余談ですが、WindowsのVisual Studioは、標準C言語を単独では提供していません。Windowsで標準Cのプログラミングをしたい場合には、Visual C++ の標準Cのソース互換の機能を流用します。

(またなお、Linuxが採用しているのは標準C言語です。Linuxの基盤はC++ではないです。)

標準C言語とのイイとこ取りができる[編集]

C++の規格上、C++には標準Cとのソース互換性があるので、プログラマー視点にとっては、標準C言語のコードを流用したい場合は流用できます。

なので、C言語で書くと記述が長くなったり複雑になったりするコードに関してはC++で書く、などといったご都合主義な利用方法も可能です。


論より証拠、実際に下記のコードは、Windows版 gcc-cpp コンパイラで実行できます。

#include <iostream>
using namespace std;

int main()
{
	cout << "ようこそwelcome C++ \n"; // こっちは C++ の関数
	printf("こっちは標準C言語で出力 \n"); // こっちは 標準C の関数
	return 0;
}

上記コードの出力結果は、

ようこそwelcome C++
こっちは標準C言語で出力

です。


よく大学や専門学校などでは、C言語の授業ではVisual C++ などの C++コンパイラを使いつつも、教育内容が標準C言語が主だったりする場合も、よくあるくらいです。

このように、C++コンパイラには必ず標準Cとの互換性があるため(なぜならC++は規格でCとの実行互換性が決まっているので)、C++コンパイラの学習コストは意外と安く、とっつき安いのが利点です。

C++特有の文法には「クラス」など、標準Cと比べて難しい機能もあり、そこは学習コストが高いのですが、しかしそういった学習コストの高い部分を無視してプログラミングを開始することがC++コンパイラでは可能です。

標準Cよりも新機能に積極的[編集]

新旧の差では、標準C言語よりもC++のほうが登場の時期が新しいです。また、新しい機能を取り入れるのに、標準Cの規格と比べると、C++規格は比較的に新機能の規格への導入に積極的なので、新機能をC系の言語で使うことに興味のある場合は、C++を選ぶのも選択肢のひとつでしょう。

また、C++の他の用途として、CおよびC++ 以外のほかの多くのプログラム言語でも、それらのコンパイラがC++で書かれている場合もあります。

参考文献[編集]

  • 神林靖 監修 Herbert Schildt著『独習C++ 第3版』トップスタジオ訳、翔泳社、2005年11月05日 第3版第10刷発行