最終更新:2013-01-18 (金) 06:45:44 (4449d)
C++
Top / C++
特徴
- C言語より優れているC言語
- データ抽象?をサポート
- オブジェクト指向プログラミング?をサポート
- ジェネリックプログラミングをサポート
基本データ型
標準規格
標準入出力
#include <iostream> cin >> i cout << i << endl; cerr clog //入力はスペースで区切られる
C++/マニピュレータ
C++/標準ライブラリ
C++/文字列
C++/キーワード
C++/文法?
C++/C言語との違い
宣言?と定義?
- 宣言:名前や型をコンパイラに知らせる
- 定義:名前をつけたものの実体を確保する。メモリを割り当てたり、関数のコード生成を行う。
C++/変数
false=0 true!=0 //変数の初期化 int num = 100; int num(100); p = new int(100);
C++/配列?
#include <iostream> int main() { int *p; int i; p = new int[10]; // int型10個分の領域を動的確保 for(i=0; i<10; ++i) { p[i] = i; std::cout << p[i] << std::endl; } delete [] p; // 動的に確保した領域を解放 return 0; }
C++/クラス
//クラスの宣言 class myClass{ private: int a; public: //インスタンス化時に実行される myClass();//コンストラクタ ~myClass();//デストラクタ int get_a(); void set_a(int num); } //実装 void myClass::set_a(int num){ } //呼び出し int main(){ myClass ob1; ob1.get_a(); return 0; }
インスタンス化
//書き方は同じ myclass ob = myclass(3); myclass ob(3); myclass ob(120); myclass *p;//ポインタを宣言 p=&ob;//アドレスを取得 myclass *p; p = new myclass(12); ob.get();//オブジェクトからのときは. p->get();//ポインタからのときは->
インターフェイス
class IPen { public: // 線を描く virtual void DrawLine(int sx, int sy, int ex, int ey) = 0; };
- 末尾に=0をつけると関数の定義が無視されるので直接インスタンス化できない
構造体
struct タイプ名{ //公開 private: //非公開 }object-list; //共用体? //インライン関数 inline int even(int x){ return !(x%2); } //マクロ展開 //オブジェクトの代入はdeep copy ob1=ob2; malloc/free ↓ new/delete
用語
- 多重継承
- 仮想基本クラス
- 入出力マニピュレータ
- 仮想関数
- STL
- コンテナ
- アルゴリズム
- 反復子
- stringクラス(wstring)
- Cstring(\0)
名前空間
namespace hoge { int num; // hoge::num } //使うとき a=hoge::num; //もしくは using namespace hoge; a=num;
参照渡し
//ポインタ渡し void func(CSample* s) { s->member = 100;//アロー演算子 } //参照渡し void func(CSample& s) { s.member = 100;//ドット演算子 }