タグ

cとc++に関するtztのブックマーク (5)

  • リファクタリングにおけるC言語プログラマーの視点

    には、ファイルのコピーをするCFileCopyというクラスを例に、メンバー関数が多すぎるクラスを手直しする例が紹介されている。 だが、この例を見ると、リファクタリングによって、不適切なインターフェースを持つクラスができてしまっている。 まずは、手直しする前の、メンバー関数が多過ぎるCFileCopyクラスを引用する。 class CFileCopy { typedef bool (*UserCancelFunc)(const CFileCopy&,void*); typedef void (*DirDownFunc)(const CFileCopy&,const char*,void*); typedef void (*DirUpFunc)(const CFileCopy&,const char*,void*); typedef void (*FileCopyStartFunc)(cons

  • 連載記事「生産性向上への道 Eclipseで行うC/C 開発」 ― @IT MONOist

    組み込みソフトウェア/ハードウェア開発における技術力の向上、改善・最適化などを幅広く支援する“組み込み開発エキスパート”のための情報フォーラム

  • 静的変数の初期化 - (void*)Pないと

    http://www.geocities.jp/ky_webid/cpp/language/019.html 静的ローカル変数の初期化についてですが、C言語とは仕様が異なることに注意して下さい。C言語では、静的ローカル変数は、プログラムの実行開始時点で初期化されますが、C++では、通常のローカル変数と同様に、変数定義が記述されているところで初期化されます。そのため次のソースは、C言語ではエラーですが、C++では問題ありません。 void func(int num) { static int snum = num; // C++ではOK。C言語ではエラー } 引数に渡した値によってstaticの値を決定できるということは何か面白そうなものが作れそうな気がしないこともないですね。 いずれにせよC言語とC++との違いとして押さえておきたいです。

    静的変数の初期化 - (void*)Pないと
  • RAIIもどき in C __attribute__((cleanup(fn)))

    gccの__attribute__((cleanup(fn))) が便利すぎる件について。 C++でコードを書くときは、RAIIとか呼ばれているイディオムを使えば、ご存じの通り、ロックしたmutexを手動で開放する必要もないですし、newしたオブジェクトを手動でdeleteする必要もないです。 void Baz::boo() const { boost::mutex::scoped_lock lock(mutex); // ... return; // lock変数のデストラクタで自動開放。手動での開放不要 }でもC言語だと、当然ながら手動で開放しないといけません。複数箇所でreturnしている場合など、タイプが面倒臭すぎ。 int foo() { pthread_mutex_lock(&mutex); // ... if (hogehoge) { pthread_mutex_unlock

    RAIIもどき in C __attribute__((cleanup(fn)))
  • C++ はなぜ人気がないのか : IT Pro 記者の眼

    2005年1月に出た「C++の設計と進化」(ソフトバンク パブリッシング発行)を読んだ。C++の設計者であるStroustrup自身が,C++の設計哲学や標準化されるまでの出来事を語ったである。原著が出たのは1994年とかなり古いが,日語版にはStroustrupによる「2005年のC++」という1章が加筆されている。原著を読まれた方も,とりあえず手にとってみてはいかがだろうか。 さて,書を読んで改めて感じるのが,日におけるC++の最近の評価が低すぎるのではないかということだ。Javaが普及した今となっては「もはや過去の言語」という声すら聞くほどだ。10年以上にわたってC++を触ってきた記者から見ると,悲しい限りである。 確かに,開発コストを考えると,業務システムの開発にC++がほとんど使われないのは仕方がない。しかし,実行速度やメモリー効率が重要なソフトや,コストを掛けただけの見

    C++ はなぜ人気がないのか : IT Pro 記者の眼
    tzt
    tzt 2009/07/14
    入門書で「cout << "Hello world." << endl;」を見た瞬間こりゃダメだと思って速攻で見切りをつけた。C++の設計者はヤバイ薬をキメてこの言語を作ったに違いない。
  • 1