タグ

C++と用語に関するyowanoのブックマーク (5)

  • 実行時型情報 - Wikipedia

    実行時型情報(じっこうじかたじょうほう、英: Run-Time Type Information, RTTI)とは、プログラムの実行時に、メモリ上に存在するオブジェクトのデータ型に関する情報のことである。実行時型識別(英: Run-Time Type Identification, RTTI)とも。 主に型の内部名および継承の階層構造や、実装によってはメンバ関数シグネチャなどの情報を保持していることもある。これによってプログラム内のオブジェクトや変数の型を動的に(実行時に)判別できるようにする。 実行時型情報は多くのプログラミング言語で用いることができるが、RTTIは特にC++で用いられる言葉である。C++でdynamic_castによる型変換やtypeid演算子を用いるにはRTTIを有効にしなければならない。RTTIを有効にするとデータ量が増えたり速度性能に影響が出たりすることもあるため

    yowano
    yowano 2013/10/31
    実行時、メモリ上に存在するオブジェクトのデータ型に関する情報のことである。 主に継承構造や、実装によってはメンバ関数などの情報を保持していることもある。オブジェクト・変数の型を動的に判別するのに使う。
  • 弱い参照 - Wikipedia

    この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "弱い参照" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL(2011年10月) 弱い参照(英: weak reference、ウィークリファレンス)あるいは弱参照とは、参照先のオブジェクトをガベージコレクタから守ることのできない参照のことである。弱い参照からのみによって参照されるオブジェクトは到達不可能とみなされ、従っていつでも解放することができる。弱い参照は、通常の参照(強い参照、強参照)による諸問題を解決するために用いられる。PythonJavaをはじめとするガベージコレクタを実装したオブジェクト指向プログラミング言語の多くは、弱い参

    yowano
    yowano 2013/08/29
    弱参照からのみによって参照されるオブジェクトは、ガーベジコレクションによっていつでも解放される。循環参照の問題を解決できるほか、オブジェクトがさほど重要ではないということを示すことにも使える。
  • バッファオーバーフロー - Wikipedia

    バッファオーバーフロー(英: buffer overflow)またはバッファオーバーラン(英: buffer overrun)は、コンピュータのプログラムにおけるバグのひとつ、またはそれにより引き起こされる現象で、プログラムがバッファに割り当てられた空間よりも大きなデータを書き込むことで、データがバッファ境界からあふれ、バッファの範囲外のメモリを上書きし、元々そのメモリにあったデータを破壊してしまうことを指す。 バッファオーバーフローは、上書きされるメモリ領域がスタック領域なのかヒープ領域なのかに応じてそれぞれスタックベースのバッファオーバーフロー、ヒープベースのバッファオーバーフローと呼ばれる。なお、名称が似ているスタックオーバーフローとは別の現象である。 サイバーセキュリティ・情報セキュリティの分野では、バッファオーバーフローはメモリ破壊系の脆弱性の一つとして知られ[1]、攻撃者がバッ

    yowano
    yowano 2013/06/11
    設計者が意図していないメモリ領域の破壊が起こされるバグのひとつ。バッファオーバーランは深刻なセキュリティホールになりうる。多発するのは文字列と配列。これらでなくとも入力データのサイズの検知は確実に行う
  • スタックオーバーフロー - Wikipedia

    スタックオーバーフロー (英: stack overflow) は、コンピュータプログラムにおいて、コールスタック領域の限界を超えたデータプッシュにより発生する、バッファオーバーフローの一種である。スタックバッファオーバーフロー (英: stack buffer overflow) とは別の概念である。 プログラムにおいて、サブルーチン(関数/プロシージャ)呼び出しに関する情報を格納するためのスタックメモリ領域(コールスタック)が確保される。サブルーチン呼び出しのたびにデータがスタックに積まれ(プッシュ)、サブルーチンが終わって制御フローが呼び出し元に戻るとスタックからデータが降ろされる(ポップ)。オペレーティングシステムや実行オプションにもよるが、コールスタックに格納できる情報量には上限がある。コールスタックに蓄積されるデータ量が限界を超えるとスタックは「オーバーフロー」し、未定義動作を

    yowano
    yowano 2013/06/11
    プログラム中での関数呼び出しが多すぎる時に発生する、バッファオーバーフローの一種。関数呼び出しや再帰処理による無限ループ、大きすぎる配列の確保を行う(静的あるいはヒープ領域での確保は大丈夫)と起きる。
  • インクルードガード

    [ C++で開発 ] インクルードガード 少し込み入ったプログラムを開発していると、ヘッダファイルを2重にincludeしてしまい、コンパイルエラーとなることがあります。ここでは、その回避方法として使われる内部インクルードガードと、include処理時間を大幅に削減しコンパイル時間を短くする冗長インクルードガードの2つを取り上げます。 (追加)最近のGCCでは#pragma onceも無警告で使用できるようになっているようです。 インクルードガードの必要性 2重インクルードの発生 まず、2重インクルードが発生する例を見てみます。

  • 1