タグ

C++とprogrammingに関するfjwr38のブックマーク (12)

  • メモリリークとは何か - kuenishi's blog

    メモリリークに悩まされている技術者は多いだろう。メモリリークが嫌でGCという技術が開発されたといっても過言ではないし、歴史的にはC++からJavaへシフトが起きた大きな理由のひとつといっていい。Unix系の簡単な定義でいえば、ヒープ領域を指すポインタ(アドレス)をロストしてしまえばそのメモリはもう漏れたといってよい。たとえばこういったコードだ。 struct { int i; char c; } spam; int main(){ void* p; int i; for(i=0; i<1024; ++i){ p = malloc(sizeof(struct spam)); } pause(); } このコードではpause(3)の時点で約5KBのメモリが漏れている。free(3)を使えばメモリをOSに返却できるが、アドレスが分からないので返却できない。 ところが、ここでいいたいのは、メモリ

    メモリリークとは何か - kuenishi's blog
  • C++名前空間

    [ C++で開発 ] C++名前空間 昔C++をかじった頃は名前空間はありませんでした。Javaに手を染めてから標準C++に入ったときに、名前空間を知って、これはJavaのpackageと同じようなものだなぁと思いました。 クラスが増えてくると、クラス名等の名前定義の衝突が考えられます。古くは、定義名の先頭にプロジェクトなどの名称を接頭辞として付与する方法を取っていましたが、名前空間を使用すると効果的な管理ができるようになります。 また、UMLによる設計をしている場合、パッケージを実装するのに名前空間を使います。 名前空間の使用方法 名前空間の中に型定義を行う 名前空間を指定して関数宣言、定数定義、型定義をする場合、namespace 名前 { ... } で囲います。通常これらはヘッダファイルに記述することになります。 namespace torutk { void clear_list

  • Rust (プログラミング言語) - Wikipedia

    Rust(ラスト)は、性能、メモリ安全性、安全な並行性を目指して設計されたマルチパラダイムのプログラミング言語である。C言語、C++に代わるシステムプログラミング言語を目指しており[2]、構文的にはC++に似ているが[3]、「ボローチェッカー」(borrow checker) で参照の有効性を検証することによってメモリ安全性を保証できる。Rustはガベージコレクションなしでのメモリ安全性を達成しており、必要な場面で参照カウントを使うこともできる[4][5] 。 Rustプロジェクトはオープンソースのコミュニティベース開発で進行しており[6]、言語仕様(検討段階含む)、ソースコード、ドキュメントはオープンソースライセンスで公開されている[7]。2006年の開発初期は、Mozillaの従業員のグレイドン・ホアレ(Graydon Hoare)[8]の個人プロジェクトだったが、2009年にMozi

    Rust (プログラミング言語) - Wikipedia
  • C++で静的配列の要素数を求めるテンプレート関数 | TECHSCORE BLOG | TECHSCORE BLOG

    こんにちは、鈴木です。 唐突ですが、C/C++ で静的配列の要素数を求めるときに、どのようなコードを書きますか?

  • box2dチュートリアル - jarinosuke blog

    第一回 一回目の今回はbox2dについての自分自身での復習も含め、テンプレートのソースを読んでいきたいと思います。 ただ! このテンプレートが、というかBox2dの仕様なのかよく知りませんが、僕は若干ソースを追いにくく全体を把握できませんでした。 なので、今まで使ってきましたがもう一度Box2dのコードを読み進めながら、それを改良していきたいと思います。Chipmunkは今回は無しです。 また、今回のソースは以下に上げてあるので、pullして照らし合わせながら読んで頂けると分かりやすいと思います。 git clone https://github.com/jarinosuke/KuwagataFallsおかしな所などありましたら、githubでコメント頂けると嬉しいです。 まずはWorld box2dは現実と同じように物理の力が働きます。なので「世界」を作らないといけません。 HelloW

    box2dチュートリアル - jarinosuke blog
  • Google C++スタイルガイド 日本語訳

    Text Drop 翻訳、プログラミング、写真、カメラなどについて書いてます。スタイルガイド/コーディング規約やチートシートなど、ちょっと便利なものを翻訳しています。 TEXTdropでは、C++プログラマーも利用できるパワフルな機能を搭載。C++のコードを書く際に行う手順や避けておきたい工程などを詳しく説明しています。コードスタイルラインの日語版では、日語訳やJ P Yへの換金もサポート。話題性があるオンラインカジノ 日円変換や入金の際のバグにも対応しています。統一性のあるコードを書くためのポイントや規約の種類を参考にする事ができます。

  • C++ ポインタ ブートキャンプ

    Sapporo.cpp & CLR/H 合同勉強会 ( http://atnd.org/events/33614 ) で発表したスライドです。

    C++ ポインタ ブートキャンプ
  • C++クラスの書き方が面倒くさい訳 - すたんだーどっ☆あいおーっ!

    Cが全然分からないころの話。 javaのように1クラス1ファイルに書かないのはなんで? メンバがポインタばっかりなのはなんで? という疑問を持ちながらコーディングしてるともやもやして嫌でした。 もやもやがいやなのでjava風に書いていたら当然のように詰まりました。 ポインタじゃなかったらメモリが大変なことになるだろうが! というのは最もなんですけど、じゃ小さいプログラムならありなのか?スマートポインタ使えばいいのか?と言うとそうでもない。 今日書いてみたいのは、クラスは相互参照がめんどくせぇから分割しろ。そして同じ理由でメンバ変数はポインタにしとこうぜ、というお話。 相互参照の解決 AクラスがBクラスを使って、BクラスがAクラスを使う。 こういう状態を相互参照とか相互includeとか言うと思う。 javaは何でもないことだけど、C++はこれを簡単には許してくれない。 相互参照の解決方法に

    C++クラスの書き方が面倒くさい訳 - すたんだーどっ☆あいおーっ!
  • Amazon.co.jp: C++テンプレートテクニック: επιστημη, 高橋晶: 本

    Amazon.co.jp: C++テンプレートテクニック: επιστημη, 高橋晶: 本
  • enum-j.html#java_enum

    C言語によるプログラミングでは、列挙型(enum型)はたいへん良く使われます。 オブジェクト指向言語でも、それは変わらないようです。C言語を拡張したC++言語ではもちろん、Java言語でも、J2SE 5.0になってから列挙型が導入されたほどです。 その一方で、オブジェクト指向言語で列挙型を使う弊害も、繰り返し指摘されてきました。列挙型とswitch文を使ったソースコードは、ポリモーフィズムを使って書き直すべき典型的な悪い例として、しばしば取り上げられて来ました。 しかし、列挙型を使ったプログラムのすべてが、ポリモーフィズムを使って書き直すべきだとは限りません。継承によるポリモーフィズムは、オブジェクト指向の特徴の1つですが、サブクラスを作るべきではないケースもあるのです。そのような場合に、列挙型を使ったコードを書くことは、悪いことではありません。 ここでは、オブジェクト指向言語における列挙

  • C++マニアック,ポインタ,pointer の使い方(クラスメンバへのポインタ)

    ポインタの使い方 ここでは C 言語と C++ 以外の言語ではあまり見かけないポインタについて解説します。 C 言語にはなく、C++ にはある、マニアックなポインタといえば、クラスメンバへのポインタです。クラスメンバへのポインタを知らない人も多いのではないでしょうか。これについては、このページの後半で解説します。前半は、通常のポインタについて解説します。 ポインタは難しいといわれることがありますが、そんなことはありません。C 言語と C++ がアセンブリ言語のように軽快であるのは、ポインタのおかげといっても良いでしょう。ここで、明快に理解してください。 ポインタは、必要なのか、使わない方がよいのか、という議論 組み込み型変数とポインタ 配列の先頭アドレスとポインタの関係 関数へのポインタ ポインタと整数の加減算(ディスプレースメント) ポインタ同士の引き算 クラスメンバへのポインタ <-

  • bwin·必赢(中国)唯一官方网站

    fjwr38
    fjwr38 2012/06/15
    C系のコード補完
  • 1