「C++のスケルトンプログラム」の版間の差分
提供: C++入門
(ページの作成:「<!-- vim: filetype=mediawiki --> __TOC__ == 概要 == ここで紹介するのは、C++のスケルトンプログラムです。 実質的になにもしない...」) |
|||
| (同じ利用者による、間の2版が非表示) | |||
| 行1: | 行1: | ||
| − | + | ここで紹介するのは、[[C++]]のスケルトンプログラムです。[[C++ライブラリ]]では、たくさんのライブラリのサンプルコードを掲載しています。 | |
| − | + | ||
| − | + | ||
__TOC__ | __TOC__ | ||
== 概要 == | == 概要 == | ||
| − | |||
ここで紹介するのは、[[C++]]のスケルトンプログラムです。 | ここで紹介するのは、[[C++]]のスケルトンプログラムです。 | ||
| + | == ソースコード main関数のみ == | ||
実質的になにもしないので、何も出力されません。 | 実質的になにもしないので、何も出力されません。 | ||
| − | |||
[[C言語]] のスケルトンとまったく同じです。 | [[C言語]] のスケルトンとまったく同じです。 | ||
| − | + | [[C++]]も[[C言語]]と同様に、 main 関数からはじまります。引数もargcとargvで受け取れます。 | |
| − | [[C++]]も[[C言語]]と同様に、 main | + | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
=== main.cpp === | === main.cpp === | ||
| − | |||
<syntaxhighlight lang="cpp"> | <syntaxhighlight lang="cpp"> | ||
int | int | ||
| 行27: | 行18: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| − | == コンパイル == | + | === コンパイル === |
| − | + | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
g++ main.cpp | g++ main.cpp | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| − | == | + | === 実行例 === |
| − | + | ||
なにも起きません。 | なにも起きません。 | ||
| − | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
./a.out | ./a.out | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| − | == | + | == ソースコード main関数のみ 2 == |
| + | 標準的に利用するようなライブラリをincludeしたバージョンです。 | ||
| + | <syntaxhighlight lang="cpp"> | ||
| + | #include <iostream> | ||
| + | #include <cstdlib> | ||
| + | #include <string> | ||
| + | using namesptd std; | ||
| + | int | ||
| + | main (int argc, char *argv[]) | ||
| + | { | ||
| + | return (0); | ||
| + | } | ||
| + | </syntaxhighlight> | ||
| + | == ソースコード for文 == | ||
| + | [[for]]文のバージョンです。 | ||
| + | <syntaxhighlight lang="cpp"> | ||
| + | #include <iostream> | ||
| + | #include <cstdlib> | ||
| + | #include <string> | ||
| + | using namesptd std; | ||
| + | int | ||
| + | main (int argc, char *argv[]) | ||
| + | { | ||
| + | int max = 10; | ||
| + | for (int i = 0; i < max; i++) { | ||
| + | cout << i << endl; | ||
| + | } | ||
| + | return (0); | ||
| + | } | ||
| + | </syntaxhighlight> | ||
| + | == ソースコード if文 == | ||
| + | [[if]]文のバージョンです。 | ||
| + | <syntaxhighlight lang="cpp"> | ||
| + | #include <iostream> | ||
| + | #include <cstdlib> | ||
| + | #include <string> | ||
| + | using namesptd std; | ||
| + | int | ||
| + | main (int argc, char *argv[]) | ||
| + | { | ||
| + | if ( /* expression */ ) { | ||
| + | // do 1 | ||
| + | } else { | ||
| + | // do 2 | ||
| + | } | ||
| + | return (0); | ||
| + | } | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | == ソースコード class定義のみ == | ||
| + | <syntaxhighlight lang="cpp"> | ||
| + | class C0 { | ||
| + | C0() { | ||
| + | } | ||
| + | virtual ~C0(){ | ||
| + | } | ||
| + | }; | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | クラス定義とメンバの実装を分離したスケルトンコードです。 | ||
| + | <syntaxhighlight lang="cpp"> | ||
| + | class C1 { | ||
| + | C1(); | ||
| + | virtual ~C1(); | ||
| + | }; | ||
| + | C1::C1() { | ||
| + | } | ||
| + | C1::~C1() { | ||
| + | } | ||
| + | </syntaxhighlight> | ||
| + | == メモリの確保と解放 == | ||
| + | 詳細については、[[newとdelete]]をご参照ください。 | ||
| + | <syntaxhighlight lang="cpp"> | ||
| + | #include <iostream> | ||
| + | using namespace std; | ||
| + | class Foo { | ||
| + | public: | ||
| + | int m_i; | ||
| + | Foo (int i) :m_i(i) { } | ||
| + | ~Foo () {} | ||
| + | void show () { | ||
| + | cout << m_i << endl; | ||
| + | } | ||
| + | }; | ||
| + | int | ||
| + | main (int argc, char *argv[]) { | ||
| + | Foo *p = new Foo(3); | ||
| + | p->m_i += 20; | ||
| + | p->show (); | ||
| + | delete p; | ||
| + | return 0; | ||
| + | } | ||
| + | </syntaxhighlight> | ||
| + | == 関連項目 == | ||
* [[C++言語解説]] | * [[C++言語解説]] | ||
| + | * [[C++ライブラリ]]: ライブラリのサンプルコードがあります。 | ||
| + | * [[C++]] | ||
| + | * [[C++11]] | ||
| + | * [[C++14]] | ||
| + | * [[Boost]] | ||
| + | <!-- vim: filetype=mediawiki --> | ||
2014年1月3日 (金) 16:41時点における最新版
ここで紹介するのは、C++のスケルトンプログラムです。C++ライブラリでは、たくさんのライブラリのサンプルコードを掲載しています。
目次
概要
ここで紹介するのは、C++のスケルトンプログラムです。
ソースコード main関数のみ
実質的になにもしないので、何も出力されません。 C言語 のスケルトンとまったく同じです。 C++もC言語と同様に、 main 関数からはじまります。引数もargcとargvで受け取れます。
main.cpp
int main (int argc, char *argv[]) { return (0); }
コンパイル
g++ main.cpp
実行例
なにも起きません。
./a.out
ソースコード main関数のみ 2
標準的に利用するようなライブラリをincludeしたバージョンです。
#include <iostream> #include <cstdlib> #include <string> using namesptd std; int main (int argc, char *argv[]) { return (0); }
ソースコード for文
for文のバージョンです。
#include <iostream> #include <cstdlib> #include <string> using namesptd std; int main (int argc, char *argv[]) { int max = 10; for (int i = 0; i < max; i++) { cout << i << endl; } return (0); }
ソースコード if文
if文のバージョンです。
#include <iostream> #include <cstdlib> #include <string> using namesptd std; int main (int argc, char *argv[]) { if ( /* expression */ ) { // do 1 } else { // do 2 } return (0); }
ソースコード class定義のみ
class C0 { C0() { } virtual ~C0(){ } };
クラス定義とメンバの実装を分離したスケルトンコードです。
class C1 { C1(); virtual ~C1(); }; C1::C1() { } C1::~C1() { }
メモリの確保と解放
詳細については、newとdeleteをご参照ください。
#include <iostream> using namespace std; class Foo { public: int m_i; Foo (int i) :m_i(i) { } ~Foo () {} void show () { cout << m_i << endl; } }; int main (int argc, char *argv[]) { Foo *p = new Foo(3); p->m_i += 20; p->show (); delete p; return 0; }