「C++のスケルトンプログラム」の版間の差分
提供: C++入門
(同じ利用者による、間の1版が非表示) | |||
行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; }