C++に関するfenrir-naruのブックマーク (187)

  • 仮想デストラクタの是非::実装技術

    2005-08-18 「C++では、デストラクタは原則としてvirtualを付けて仮想関数にしておくこと。仮想でないデストラクタは継承できないことを意味する」との主張をよく目にすることがあります。今回は、組み込み環境でもそうした主張を鵜呑みにしてもよいかどうかについて、お話したいと思います。 確かに正攻法のオブジェクト指向プログラミングをやろうとすればその通りなのですが、仮想デストラクタというのはインスタンスを動的に生成することを前提としています。ご存知の通り、組み込みでは動的なメモリ管理は極力避ける傾向にありますから、ちょっと事情が違ってくるようです。 組み込みでは、ほとんどのクラスのインスタンスは、安易にnewで生成することはないと思います。newで生成することはあっても、どちらかといえば例外的な存在なのではないでしょうか?もしそうであれば、問答無用で仮想デストラクタを使用することは得

  • iostreamの拡張

    Last update 1999/09/22 iostreamの拡張 (C)平山直之 無断転載は禁止、リンクはフリー 誤字脱字の指摘は歓迎 iostreamの拡張について 例によって唐突ですが、iostreamの拡張について書いてみたいと思います。ここでいう「拡張」とは、自分でcinとかcoutみたいなものを作ろう、ということです。 「こんなもん一番最初に教えんなや」と比較的評判の悪いiostreamですが、 演算子オーバーロードがいわば「御法度」な使い方をされている メソッドの命名法がやたら変 などのように表面的に美しくないのが悪評の原因で、その辺に目をつぶれば実はそれなりによくできたシステムだったりします。 拡張方法も一度覚えると結構便利ですぜ。 iostream拡張の基礎知識 iostream、というと、そのインターフェイス(Java的な意味じゃなくて)であるところのstd::cin

  • シリアルポートからデータを受信

    HANDLE hCom; DWORD dwCount; char* rdBuf; DWORD dwRead; ReadFile(hCom, rdBuf, dwCount, &dwRead, NULL); ReadFile(hCom, rdBuf, dwCount, &dwRead, NULL) hCom:書き込みをするシリアルポートのハンドルを指定します。CreateFileの戻り値を使います。 rdBuf:データを格納するための変数へのポインタを渡します。 dwCount:受信するバイト数を指定します。同期通信の場合、このバイト数だけ受信するまで制御が戻りません。 &dwRead:実際に受信したバイト数が格納されます。 NULL:同期通信の場合にはNULLを指定します。 この場合、指定したバイト数だけデータを受け取るまで、 制御が戻りません。

  • 方法: Windows Phone Marketplace 用のスクリーンショットを作成する

    This browser is no longer supported. Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.

    方法: Windows Phone Marketplace 用のスクリーンショットを作成する
  • std::streambuf

  • カスタムバッファ

    (このコンテンツはメールマガジンの STL & iostream 入門に手を加えたものです。「 STL と iostream が使えるかのチェック」等はメールマガジンの方のページをご覧ください) iostream が用意するバッファクラスは「文字列」「ファイル」「標準入出力」のみっつしか用意されていません(ライブラリによっては最後のはありません)。今回は、新たにバッファクラスを作ってみましょう。 と言っても、バッファクラスの拡張は一筋縄ではいきません。「文字列」と「ファイル」では内部的な操作が全然違います。その「内部」を自分で作るわけですから、それは大変なことです。 ということで、まずは簡単な例から試してみましょう。次のクラスは「ただ文字列を格納するだけのバッファクラス」です。 ////////////////////////////////////////////////////////

  • C++ iostream 実装資料2 - PukiWiki

    fenrir-naru
    fenrir-naru 2009/05/07
    [iostream]