Skip to main contentdfsdf

Mr U1's List: learn_c++

    • 名前空間は、空間に名前を付け、その中に型や変数、関数などを入れることで識別名の衝突を防ぐもの
    • ちなみに、標準C++準拠のヘッダファイルは".h"がつかないことになった。".h"があるかどうかでライブラリの挙動を変える処理系もあるので注意が必要だ。

    1 more annotation...

    • ヒープ(Heap)は、木構造の一つ。単に「ヒープ」という場合、二分木を使った二分ヒープを指すことが多いため、そちらを参照すること。
    • C++では、 cout を使って出力処理を行えます。例えば、次のようにコードを書けば、画面に"Test"と出力されます。

       
      std::cout << "Test";
       

      これは、C言語で次のように書くのと同じことです。

       
      fprintf( stdout, "Test" );
       

      つまり、標準出力(通常は画面)に対して出力を行うということです。

    • C++では、あらかじめデフォルト引数 というのを決めておけば、これを省略して呼び出すことができます。 
      int func(int = 2, float = 5.3); 
       などのようにプロトタイプ宣言ができます。 これを呼び出すときは、 
      func(); func(6); func(8, 9.25); 
       というように使います。最初の例では、引数をすべて省略 していますので func(2, 5.3);と同じ意味です。 2番目の例は、最初の引数を6として、次の引数を省略しています。 これは、func(6, 5.3);と同じ意味ですね。最後の例は、引数を すべて指定しています。func(8, 9.25);の意味です。しかし、 最初の引数を省略して、2番目以降の以降の引数を指定することは できません。省略した引数以降の引数を指定することはできません。
    • 関数のオーバーロードということができます。 これは、何かというと引数の個数とか、種類?が異なれば 同じ関数名を付けてよいということです。 これって、便利なこともあれば バグ探しの時ひどい目にもあいます。
    • アクセスコントロール (access control)とは、メンバが外からアクセスできるかどうか というように単純に考えてください。(本当は、もう少し面倒です) アクセスコントロールが、public:であれば外からアクセスできます。 何も書かないとprivate:の意味になってしまいます。 

       

    • class test {  int a;  char str[32]; public:  int b;  void show_class(int c); }  void test :: show_class(int c) { ..... } 

       
       のように記述されることが多い。::はスコープ解決演算子 と呼ばれるもので

       関数の戻り値の型 クラス名::関数名(引数リスト)

       のように使います。 

    • コンストラクタは、クラスの名前と同じ名前である。
    • コンストラクタは、クラスの名前と同じ名前である。

    2 more annotations...

    • インヘリタンス(inheritance)とは、「相続」「継承」 「相続財産」「継承物」などという意味の英語
    • 導出クラス:アクセスコントロール 基本クラス {...};

    •  

       CleanupStack::PushL()を経由してCleanupStackに積まれたインスタンスは、例外をキャッチするTRAPに到達したときに、必ず消されることが保証されます。これにより例外によるメモリリークを乗り切ることができます。

    • オーバーライドとは継承元の関数を継承先で、書き換えてしまうことです。
    • 1.継承元クラスで、オーバーライドされる関数を   virtualとして宣言する(仮想関数といいます) 2.継承先クラスで、オーバーライドする関数を普通に宣言する

    1 more annotation...

    • }shobu;
      • defaultのインスタンス

    • const Test x;  cout << "[main] x.a= " << x.a << endl;  //x.a = 20; エラーとなります。  //x.show(); 呼び出せません。
    • //Comp同士の加法の定義 Comp Comp::operator + (Comp x) {  Comp z;  z.real = real + x.real;  z.img += img + x.img;  return z; }
    • //Comp + intの時の定義 Comp Comp::operator + (int i) {  Comp z;  z.real = real + i;  z.img = img;  return z; }
    • て、クラスAに対して、 

       A* this; 

       
       というポインターが自動的に定義されます
    • クラスAに対して、 

       A* this; 

       
       というポインターが自動的に定義されます
    • ostream& o, const T& t)
      • 第6章エイリアスを参照

        ostream データ型
        & 参照
        o 変数名

    • ostream& o
    • void C::show(void) {  cout << str;//ただ単にstrではclass Cのstr  cout << A::str;//スコープ解決演算子  cout << B::str;//スコープ解決演算子  return; }
      • class A と class B の
        protected:
        char str

        を継承している

    • class CatClass {  int legs;  char eye_color[32]; public:  CatClass();  CatClass(char *str);  friend void show(CatClass); };
      • int legs, eye_colorはprivate

    • 参照とは、「&」演算子を付けて表します。 そして、宣言と同時に初期化されるとあとは参照される変数と 全く同じに扱えます

    1 more annotation...

    • Moto(); };
      • classは最後に;

    • class Composition { public:  Moto moto; //メンバオブジェクトです };
      • Motoはクラス

        他のクラスをメンバに持つクラスをコンポジションという

    1 more annotation...

    • 空白読み飛ばし機能をOFFにするために、 ios_base::unsetf()を呼び出しています。特定の機能をOFFにするときには、この関数に 目的の機能を表す引数を指定します。逆にONにするときには、ios_base::setf()を呼 び出します。
    • 10進数と16進数のフラグが同時にONになっていると、 10進数の方が優先されてしまう

    1 more annotation...

1 - 20 of 30 Next ›
20 items/page
List Comments (0)