C++
別名:C++言語,C with Classes
【英】C Plus Plus, C++ programming language
C++とは、AT&Tベル研究所のビャーネ・ストロヴストルップにより、C言語の拡張仕様として作成された、コンパイル型の汎用プログラミング言語のことである。
C++では、C言語にクラス定義のようなオブジェクト指向プログラミングの要素が追加された言語仕様となっている。C言語との下位互換性を保っているため、C言語でできることは全てC++でも実現可能である。C++は実行時に型が決定されている静的な型システムを用いているため、SmalltalkやRubyのような他の純粋なオブジェクト指向言語と比べて、柔軟性には欠けるものの、実行速度は低下しにくい、という性質を持つ。
C++は多機能かつ汎用的であり、それまでC言語が採用されていた領域をカバーできることに加えて、オブジェクト指向の特徴であるプログラムの再利用性が活用できるため、大規模な開発にも適しているとされる。C++は、オペレーティングシステム(OS)をはじめとするシステムプログラムから、組み込みシステム、デスクトップアプリケーションなど、多様な用途において採用されている。例えば、Windowsのアプリケーションにおいては、Visual BasicやC#と並び、C++がアプリケーション記述用の主要な言語となっている。
C++は、C言語の機能に加えて、クラス定義、多重継承、仮想関数、多様性、メソッドの多重定義、テンプレート(総称プログラミング)、例外処理、といった機能が追加されている。とりわけ多重継承をサポートしている点は大きな特徴であると言える。SmalltalkやJavaなどのオブジェクト指向のプログラミング言語では、単一継承と呼ばれ、一つの親クラスしか定義できない仕様になっているが、C++では多重継承により、あるクラスの親クラスを複数持つことが可能となっている。
通常C++のソースファイルの拡張子には「.cpp」が、同じくインクルードされるヘッダファイルの拡張子には「.hpp」が付く。
C++は、1980年前後に、C言語をベースに、Simulaのクラス機能を追加したプログラミング言語として開発された。当初の名称は「C with Classes」といった。C++の処理系は当初、C言語に対するプリプロセッサとして作成されたため、C++のソースコードを処理すると、C言語のソースコードを吐き出す形となっていた。C++は1998年にISO/IEC 14882:1998、2003年にISO/IEC 14882:2003として標準化されている。なお、C++のテンプレート機構を用いたコンテナとアルゴリズムを実装した標準ライブラリとしてはSTL(Standard Template Library)が規定されており、またC++標準にも影響を与えている強力なライブラリとしてBoost C++ Librariesがある。
C++は、その仕様の規模の大きさや複雑さから、マスターするのが最も困難な言語の一つとされる。それゆえ、熱烈な支持者も多い。他面、C++における反省が、よりスマートなオブジェクト指向言語としてのJavaやC#の誕生を促したとも言われている。
C言語
(C (programming language) から転送)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/07/10 04:30 UTC 版)
注釈
- ^ 英語ではC-family, C-style, C-likeなどと呼ばれる。「C系」の定義は明確ではないが、構文がCに類似しているものを指すことが多い。
- ^ 例えばポインタのエイリアシングは最適化やベクトル化を妨げる[1]。
- ^ 他の言語、例えば、BASICやPascalではプログラム開始直後に実行するプログラム要素はサブルーチンや手続きや関数ではない。
- ^ C89においては関数プロトタイプは必須ではない。
- ^ C89規格に準拠しないソースコードをGNU Cコンパイラでコンパイル失敗させるには、
gcc -ansi -pedantic -fstrict-aliasing -Wall -Wextra -Wmissing-declarations -Werror test.c
とすれば良い(→エイリアシング)。 - ^
setjmp.h
を参照。
出典
- ^ ポインター・エイリアシングとベクトル化 | iSUS
- ^ もう一度基礎からC言語 第19回 いろいろな演算子~ビット演算子 Cは高級アセンブラ?
- ^ 第1回 Chapter 1 C言語の概要(1):Cプログラミング入門|gihyo.jp … 技術評論社
- ^ ISO/IEC 14882:2003 §3.6.1 「The function main shall not be used within a program.」
- ^ JIS X 3014:2003「プログラム言語C++」(日本産業標準調査会、経済産業省) §3.6.1 「関数mainは、プログラムの中で挙用してはならない。」
- ^ EXP33-C. 未初期化のメモリを参照しない JPCERT/CC、2014年3月25日(2014年8月22日閲覧)。
- ^ “Memory Allocation Guide”. The Linux Kernel documentation. 2023年11月8日閲覧。
- ^ main 関数 - cppreference.com
- ^ [Python入門]Pythonってどんな言語なの?:Python入門(1/2 ページ) - @IT
- ^ Hello, Worldプログラム | Programming Place Plus C言語編 第2章
- ^ Portability of C Programs and the UNIX Systems
- ^ a b The Evolution of the Unix Time-sharing System
- ^ ソースレベル互換 - ZDNet Japan
- ^ http://www.tohoho-web.com/ex/draft/kanji.htm
- ^ Rust言語でAndroidはより強固・安全に ~GoogleがOS開発への導入を進める - 窓の杜
- ^ Microsoft、Windows 10の一部をRustへ書き換えてセキュリティ強化狙う | TECH+
- ^ C FAQ 11
- ^ 6.19 Arrays of Variable Length
- ^ C の歴史 - cppreference.com
- ^ Clang 拡張 C++ コンパイラ - RAD Studio
- ^ Status of C99 features in GCC - GNU Project - Free Software Foundation (FSF)
- ^ C11Status - GCC Wiki
- ^ “Microsoft Releases C Program Wares, Provides Rebates”. InfoWorld: p. 29. (1987年11月9日)
- ^ インテル® C++ Composer XE 2011 Windows* 版インストール・ガイドおよびリリースノート - w_ccompxe_2011.7.258_Release_Notes_ja_JP.pdf
- ^ C99 Support in Intel® C++ Compiler | Intel® Software
- ^ C11 Support in Intel C++ Compiler | Intel® Software
- ^ 脇英世(監修)、1987、『パソコンの常識事典』、日本実業出版社 pp. 339、342 - 普及率、解説書の多さについて。
- ^ 長沢英夫(編)、1988、『パソコンベストソフトカタログ』、JICC出版局 pp. 201 - Personal版、解説書の多さについて。
- ^ ucom10 1983, p. 80.
「C (programming language)」の例文・使い方・用例・文例
- そのドラマは今晩8時にCBSで放送される
- 彼はほとんどすべてのお金をCDに費やす
- BBCは昼夜放送している
- 米国のCongressは英国のParliamentに相当する
- その聖歌隊は慈善のためにCDを吹き込んだ
- CDコンパクトディスク
- 「彼らの新しいCDはすごいと思うよ」「私もよ」
- そのCDと全く同じコピーを作った
- BBCによる独占テレビインタビュー
- ABC航空をご利用いただきありがとうございます
- こんなジャングルの中でもラジオでBBC放送が受信できるんだ
- そのバンドは彼らの新しいCDをクリスマス前に出すだろう
- これらのCDはずっと持っていていいですよ
- 寄贈者の名をABC順に表にした
- 彼はCD店を経営している
- 私は友人と同じくらいCDをもっている
- このCDプレイヤーはどこもおかしくない
- レコード店に新しいCDを注文した
- 彼女はいつも寝る時にそのCDをかける
- 「彼の新しいCDを買うつもりかい」「買うかもしれないね」
- C (programming language)のページへのリンク