「C++のスケルトンプログラム」の版間の差分
提供: C++入門
行98: | 行98: | ||
} | } | ||
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> | </syntaxhighlight> |
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; }