Problems and suggestions about individual projects should go to users@thatproject.tigris.org 2020-03-13: This site is going to be decommissioned and shut down very soon. Please copy and archive any data you wish to keep ASAP
Windows 2000 / XP で、ログオン画面でシャットダウンボタンをクリックすることができるかどうかは、恐らく Windows の仕様通りの動作では、セキュリティ ポリシー レジストリ項目の中の [セキュリティ オプション] → [シャットダウン: システムをシャットダウンするのにログオンを必要としない] が無効になっていればボタンを灰色にしてクリックできなくして、無効以外の値になっていればボタンをクリックできるようにする、というものがあるだろう。Windows の内部実装の仕様書を読んだ訳ではないが、セキュリティ ポリシーのエディタのポリシー名にそう書いてあるので、恐らく上記の通りの仕様になっていもと思われる。 したがって、考え方によっては、[シャットダウン: システムをシャットダウンするのにログオンを必要としない] が有効になっている場合 (大抵のコンピュータのデフォルト値)
オブジェクト指向設計の基本 オブジェクト指向プログラミングの特徴 伝統的な手続き指向プログラミングでは、実行する一連のステップ、すなわちアルゴリズムを記述するものをプログラムと考えます。オブジェクト指向プログラミングでは、プログラムはオブジェクトの相互作用システムをして記述します。一時的に必要となる領域、すなわちテンポラリ・バッファはプログラムのいたるところで用いられます。C++を厳格な手続き型言語として使うこともできますが、オブジェクト指向のアプローチをとることでC++の長所を生かすことができます。 オブジェクト指向プログラミングは、キーとなる概念をいくつか持っています。 ■ 抽象化の概念 最も基本的な概念で、大規模なプログラムをより単純に記述できるようにします。 ■ カプセル化の概念 プログラムの変更とメンテナンスを簡単にします。 ■ クラス階層の概念 プログラムを簡単に拡張できるよう
listとは STLのlistはいわゆる双方向連結リストと言われているものです。 双方向連結リストを言うものを説明する前に、まずリストについての説明をします。 リストとは任意の位置への要素の挿入・削除を要素の順序を変えることなく行うことにできるデータ構造のことです。 このような操作を配列を用いてやろうとすると、 int array[SIZE]; int rear;//データの末尾 //ポインターpの指す位置に新しいデータを挿入する。 void insert(int* p, int data) { int* q; rear++; if(rear==SIZE)//full return; for(q=array+rear; q>p; q--) *q = *(q-1); //要素を1つずつずらす *p =data; //そして、空いた場所に新しいデータを挿入 } //ポインターpの指す位置のデー
コンテナの種類による計算量の相違 はじめに 「C++はCより遅い」と言われることがよくあります。これはある意味で正しいといえるでしょう。 Cではプログラマが明示的に行なっている、変数に対する初期化/代入/後始末が、C++では暗黙のうちに行われます。 これは、プログラマの負担を軽減してくれる、とても便利な機能には違いありませんが、裏を返せば、プログラマの意識しない(コードに現われない)初期化/代入/後始末が起こるということであり、変数すなわちオブジェクトの初期化/代入/後始末に要する処理時間が大きいほど、「C++はCより遅い」と感じるはずです。 プログラムの中で日常的に用いられる配列やリストなどのコンテナに対する要素の挿入/削除を行なうとき、いったいどれほどの頻度で初期化/代入/後始末が起こっているのか、実際に計測してみることにしましょう。 前準備 まず、計測器をこしらえておきます。これはコ
テンポラリ・バッファとしての std::vector の利用 悩ましきテンポラリ・バッファ 一時的に必要となる領域、すなわちテンポラリ・バッファはプログラムのいたるところで用いられます。 void f() { char buffer[256]; ... } 上の例では256[char]のbufferをautomatic領域に確保しています。 場合によってはこのような固定サイズではなく、可変長のテンポラリ・バッファを必要とします。可変長のテンポラリ・バッファが必要なとき、通常opeartor newによってヒープ領域から確保するでしょう。 void f() { char* buffer = new char[N]; // Nは変数 ... delete[] buffer; } 当然のことながら、operator newによってヒープから確保した領域は、利用後速やかにoperator dele
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く