![Amazon.co.jp: Scalaスケーラブルプログラミング[コンセプト&コーディング] (Programming in Scala): Martin Odersky (著), Lex Spoon、Bill Venners (著), 羽生田栄一 (監修), 羽生田栄一 (読み手), 長尾高弘 (翻訳): 本](https://cdn-ak-scissors.b.st-hatena.com/image/square/cccb519e0d41714762f71e6c6c88d027b80e6b93/height=288;version=1;width=512/https%3A%2F%2Fm.media-amazon.com%2Fimages%2FI%2F41nFY0KbnfL._SL500_.jpg)
、、の、まくらことばで始まる今季からのNHK番組 「テストの花道」 http://www.nhk.or.jp/hanamichi/ 所ジョージを顧問に、受験に対する「考え方」を学んでいく番組なのですが、 これがどうして、テストの学生だけじゃなく 社会人もうらなせるほど、問題に取り組む深い考え方を示してくれます。 オススメです。 番組今回のテーマは 比べるチカラ 番組での説明 比べることは全ての思考の源である。 比べることができなければ分析はできない。 つまり、 比べることによって物事の本質にせまる ことを求めていきます。 例えば、「美人」と「かわいい」 を比べるにはどうするか? それに使うツールがこちら。 ダブルイメージマップ (マインドマップ的なもの?) このような図を使います。 それぞれの中心に比較対象を書き 連想されるものをどんどん書いていきます。 連想数は5つじゃなくていくらでも。
Ubuntuが採用しているパッケージ管理システム”apt”には一気にパッケージをまとめて導入できる「メタパッケージ」という便利な機能があります。 デスクトップ環境関連のメタパッケージとしては、「kubuntu-desktop」、「xubuntu-desktop」、「ubuntustudio-desktop」、「mythbuntu-desktop」、「edubuntu-desktop」(教育用)、「Ichthux desktop」(キリスト教向け)、「matchbox-desktop」(8.04までで終了)などがあり、Synapticパッケージマネージャからこれらをインストールするだけで、デスクトップ環境をガラリと変えてしまうパッケージ類を一気に導入することが可能です。 今回ご紹介する”Lubuntu”は、軽量なデスクトップ環境として人気のLXDEがベース。前にご紹介したFluxboxデスク
メモリの二重解放とは, new などで確保したメモリ領域(ヒープ領域)を2回 delete などで解放することを言う. new と delete をきちんと対応させて書いていないときに起こる問題だ.特にクラスのメンバに動的確保したメモリへのポインタを含む場合にやってしまいがちである.ここでは二重解放によって発生する問題を解説する. 結論から言うと,メモリを解放した後 (delete p1;),ほかの用途でメモリを確保し (p2=new T;),たまたまそれが解放したメモリと同じアドレスに割り当てられてしまった場合 (p1==p2),最初のメモリを二重解放すると (delete p1;),新しく確保したメモリ (p2) が解放されてしまう.この結果,新しく確保したメモリにアクセスすると値が書き換えられていたり,セグメンテーションフォルトが発生する場合がある.プログラマはまず,新しく確保したメ
Landscape トップページ | < 前の日 2004-03-27 2004-03-28 次の日 2004-03-30 > Landscape - エンジニアのメモ 2004-03-28 シェルのリダイレクトにまつわる失敗 当サイト内を Google 検索できます * シェルのリダイレクトにまつわる失敗この記事の直リンクURL: Permlink | この記事が属するカテゴリ: [bash] シェルのリダイレクトについての理解が不十分なためにやってしまった失敗。 標準出力も標準エラー出力も /dev/null に捨てたいとき、間違えて以下のようにしてしまうことがときどきあった。最近はやらなくなったが。 # 間違い $ command 2>&1 >/dev/nullこれだと command の標準出力は /dev/null に向けられるが、command の標準エラー出力は画面に向いてし
vector と new vector を使っていてたまにハマるのは、 new した領域を内部に抱え込んでいるオブジェクトを vector の要素として扱う場合である。 vector の要素となるオブジェクトのクラスは、コピーコンストラクタを 用意しなければならない。これはよいのだが、 問題は、vector に要素を追加しようとしたとき、 vector 内部でコピーコンストラクタを使ったオブジェクトのコピーが 勝手に発生することである。次のようなコードを考えてみよう。 class Foo { private: char *buffer; public: // デフォルトコンストラクタ Foo() : buffer( 0 ) { } // デストラクタ ~Foo() { delete[] buffer; } // バッファ確保 void allocate( size_t size ) { b
C++ ラビリンス C++ は、数多くの謎、咒文、罠、そして宝箱が仕掛けられた、壮大な迷宮である。 その C++ 迷宮をさまよう同志たちへ、ささやかながら、いくつかの道標を お贈りしたい。 もちろん、私自身、C++ 迷宮の一彷徨者に過ぎない。誤りや不備な点があれば、 遠慮なく指摘していただきたい。 キャスト (2001-03-01) dereference (2001-03-01) マルチスレッドにおける singleton (2001-03-17) 契約による設計 (2001-03-25) 戻値とコンストラクタの妖しい関係 (2001-04-09) マルチスレッドにおける singleton (その2) (2001-04-10) 自己言及的なテンプレート (2001-06-13) オーバーロードは継承できない (2001-06-16) GCC 3.0 のインストール (2001-07-0
デフォルトコンストラクタ C++では、クラスを定義したときにコンストラクタを定義しなければ、コンパイラが自動的に引数なしのコンストラクタおよびコピーコンストラクタを補完します。 class Person { std::string name; }; と記述したクラスは、デフォルトコンストラクタ、デフォルトデストラクタ、デフォルトコピーコンストラクタ、デフォルト代入演算子関数がコンパイラによって補完され、実質以下のコードと同等になります。 class Person { std::string name; public: Person() {} ~Person() {} Person(const Person& aPerson) { ... } Person& operator=(const Person& rhs) { ... } }; ここで、メンバー変数がstd::string& nam
C++が他のオブジェクト指向言語と比べて難しいのは、やはりメモリ管理をプログラマが自分でしなければいけない点だと思います。よくよく注意しないと、削除し忘れたり、同じオブジェクトを2度削除してしまうというエラーが発生します。このノートでは、オブジェクトを「値オブジェクト」と「参照オブジェクト」というカテゴリに分け、詳細設計の段階で注意すべき点を整理しておきたいと思います。 0. はじめに 私自身今までいくつかのプログラミング言語を使ってきましたが、C++ が他のオブジェクト指向言語と比べて難しいのは、やはりメモリ管理をプログラマが自分でしなければいけない点だと思います。例えば、 Person* person = new Person(); と生成したオブジェクトは、使い終わったら次のように削除しなければなりません。 delete person; 生成してすぐ削除するなら簡単なのですが、実際に
オブジェクト指向プログラムで getter/setterメソッドを使わなければならない 10の理由 福盛 秀雄 fukumori at m.ieice.org JavaやC++などのオブジェクト指向言語でプログラムを書いているときに、単純なメンバ変数を参照したり操作するために anObject.getX() [以後これをgetterメソッドと呼ぶ] とか anotherObject.setY(y) [以後これをsetterメソッドと呼ぶ] と書くのはなぜだろうと思ったことはないだろうか? int型の変数ひとつを操作するのになぜわざわざメソッドを定義するのだろう? 単純に代入を使えばいいじゃないか? この文章はそんなあなた(かつての僕も含む)が、getter/setterメソッドを使うべきである理由についてまとめたものである。 ということで早速本論へ。 1. クラス内部のデータ表現を変えた場
自作スクリプト kill-summary.el memo-mode.el の紹介 メモ 参考文献 Hello World ESC ESC (insert "Hello, World") ESC ESC (message "Hello, World") Elisp とは? Elisp とは emacs-lisp の(私だけの?)略記で,Emacs/Mule の動作記述を行 なうことのできる言語です.ほぼすべての Emacs 用のパッケージはこの言語を 利用して書かれています.これを会得すると「貴方好み」の Emacs 環境を構築 することができるようになります.Emacs の初期設定ファイル ~/.emacs もこの 言語で記述します.(ちなみに,かな漢字変換のかんなの初期設定ファイル ~/.canna も LISP 形式で記述しますが,Emacs には読み込まれません.こちら は Canl
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く