ポインタ天国最終章、メンバ関数ポインタ天国の始まり始まり〜。 では、今回の要点です。 静的メンバ関数は普通の関数ポインタに代入できる。 メンバ関数ポインタの型名にはクラス名が必要になる。 メンバ関数ポインタを使うときは .* や ->* 演算子が必要。 this->* は省略できない。 では、いってみましょう。 さて。第9章で関数ポインタについて話しました。その冒頭でこういう風に話しました。 関数もアドレスが取れると言いました。アドレスはただの数値です。となると関数のアドレスを入れることのできる変数があってもいいじゃないですか。今回はそういう変数についてのお話です。 これはもちろんメンバ関数にも言えることで、メンバ関数ポインタというのも作ることができます。 では、どんな文法なのかちょっと考えてみましょう。恒例ですね。 先ず、普通の関数ポインタは次のようになるのでしたね。 void Func
これは本物なのかなあ…。Computer 誌(IEEE 発行)が C++ 言語の開発者 Bjarne Stroustrup 氏に行ったインタビューの記録だそうです。内容に非常に問題があるため実際には掲載されなかったのが、どこからかリークされたものだとか。 本物かどうかは自分で判断してください。私としては何とも言えません。Usenet のニュースグループ rec.games.roguelike.angband への投稿記事が原文です。(英語原文はこちら) インタビューア(以下「I」): あなたがソフトウェアデザインの世界を一変させてから何年にもなる。振り返ってみて、感想は。 Stroustrup(以下「S」): 実はあなたがここへ来る直前、当時のことを思い出していたんだ。おぼえているかな。誰もが C 言語を使っていたけど、問題はみんな結構うまくコーディングしていたことだった。大学も C
A fast and simple algorithm for approximate string matching/retrieval SimString is a simple library for fast approximate string retrieval. Approximate string retrieval finds strings in a database whose similarity with a query string is no smaller than a threshold. Finding not only identical but similar strings, approximate string retrieval has various applications including spelling correction, fl
参考: http://d.hatena.ne.jp/faith_and_brave/20100201/1264997004 「C++0xになると、C++03 でごちゃごちゃした部分がだいぶすっきり書けるようになる」 らしいですが、C++0xを待たなくてもBoostを使えばだいぶすっきり書けるので、 BoostでのC++入門はこんな感じだよー、という気持ちで以下略。 この記事はC言語をある程度理解していることが前提です。 1. Hello World C++/Boostでの出力はC++標準の IOStream ライブラリと Boost.Format を組み合わせて行います。 例として、C言語のprintfを用いた Hello World を、C++/Boostを使って書き直してみます。 #include <stdio.h> int main() { printf( "%s\n", "Hell
pair は STL のヘッダ <utility> で定義されている、二つの要素のペアを入れる入れ物です。 二つの要素 first と second の呪縛から逃れる 二つの要素 ページの先頭へ pair は二つの要素を入れる入れ物です。それぞれの要素は C++ のオブジェクトで、その型はテンプレート引数で決まります。簡単な例を見て見ましょう。この場合、int と float がテンプレート引数です。 #include <utility> using namespace std; int main() { pair<int, float> pairif; pairif.first = 1; pairif.second = 2.3f; } pair は基本的には、次のように定義された struct PAIR に良く似ています。 struct PAIR { int first; float s
翻訳者より この翻訳は Ecma International で標準化された C++/CLI の日本語訳です。 個人的な愛から始めた翻訳名ので、用語や言葉の使い方が正式に書式化されたものではなく、俗に言う「俺語翻訳」となっています。 また、英語力の不足から、怪しい翻訳部分もあるので、内容的に怪しいと感じた場合には、原文を参照してください。 Ecma の Mr. Jan van den Beld から翻訳の公開許可を頂きました。 注意 Disclaimer This is a translation of the authoritative text which Ecma published here http://www.ecma-international.org/publications/standards/ECMA-372.htm. This translated document
そもそもAMIって何? Amazon Machine Imageの略 Amazon EC2で動作する仮想マシンのインスタンスの元になるもの Amazon Linux AMIって? Amazonが独自に開発しているLinuxディストリビューション Red Hat Enterprise をベースにしているらしい Amazon Linux AMIの特徴って? 最初からAWSと連携する為のパッケージが組み込まれている cloud-init(初回立ち上げ時に自動的に指定のコマンドを実行させて、初期設定を自動化するツール) AWS API ツール sshの鍵交換方式でのログインのみ許可 rootログインを許可しない設定に最初からなっている 最低限の構成 いらないものをインストールして居るために発生するセキュリティリスクを回避 軽量 Amazonがサポートしてくれやすい 参考 Amazon Linux
これは何? どーにもこーにもお仕事に使っているC++になじめないので、苦手な部分、知らなかった部分を取りまとめてブログに書くシリーズです。 C++脱初心者を目指す人レベルと思ってます。 ちなみに環境は、主にVisual C++ 2005 Express EditionとVisual C++ 2005です。 と、言うわけで何回続くか判らないけど、初期化リストについて。 サブクラスのコンストラクタの順序 スーパークラスがあれば、それのデフォルトコンストラクタを宣言の左順に実行 スーパークラス内では、1〜4の処理を再帰的に実行 クラスメンバに実体のクラスがあれば、それのデフォルトコンストラクタを実行 自身のコンストラクタの実行 通常のサブクラスのコンストラクタの弱点 スーパークラスで引数つきのコンストラクタを呼べない。 任意の順番で、コンストラクタを呼べない そこで初期化リストですよ。 初期化リ
割とよく使うテクニックだと思うんですけれど,ネットを調べた限りあまり扱ってないようなので,少しメモ。 C++ で任意の型を使ったメンバを持ったクラスを作るとき,テンプレート機能を使うことができます。例えば,幾何系プログラムで点クラスを作る場合,実数型の点クラスと離散型(整数型)の点クラスが欲しかったりしますよね(欲しいんです)。こゆとき,次のようなテンプレートを定義にすることで,メンバの値の型をコンパイル時に決めることができます。 template<typename T> class Point { public: // いろいろ private: // T型のメンバ T x_; T y_; }; これを使うときは,こんな風にします。 int main(int argc, char* argv[]) { Point<int> discrete_point; // 離散型の点オブジェクト P
例:クラス #include <iostream.h> #include <string.h> class hito //クラス宣言 { private: char name[40]; int age; public: void setname(char* ss); //名前を設定するメンバ関数の宣言 void setage(int tosi); //年齢を設定するメンバ関数の宣言 void disp(); //内容を出力するメンバ関数の宣言 }; void hito::setname(char* ss) //メンバ関数(setname)の定義 { strcpy(name,ss); } void hito::setage(int tosi) //メンバ関数(setage)の定義 { if(tosi<0) age=0; ekse age=tosi } void hito::disp() //
Java全盛の時代ではありますが、C++によって開発をしなければならない/した方がよい案件はまだまだ数多く存在します。その一方で、Javaからこの業界に入ってくる人がますます増えてきているのもまた事実です。本連載では、これまでJavaでオブジェクト指向プログラミングを実践されてきた方が、ある日突然C++を使うことになったときのための学習ポイントを、筆者の実経験をもとにお送りしていきます。 目次 はじめに 開発環境の準備 Hello C++!! プログラムの入り口 メソッド と 関数 まとめ & 次回予告 1. はじめに 「Do you love Java?」 こう聞かれたら、読者の皆様はどう答えますか? 筆者は「Yes, I love Java : )」と、満面の笑みで答えます。 なぜなら、 Java は、 手続き型でプログラミングをしていた筆者に、 「オブジェクト指向の何たるか」を手取り
プログラミング言語の基本となる「C」。正しい文法や作法を身に付けよう。Cには確かに学ぶだけの価値がある(編集部) プログラミング言語Cは開発の仕事に役立つ人気のあるプログラミング言語です。 この連載では、Cでのソフトウェア開発をこれから始めようという方や、使った経験はあるが勉強し直したいという方のために、基本をきちんと押さえながら勉強できるような解説をしていきます。 なるべく正しい文法や作法を身に付けていただくためにJIS規格を基本に解説しますが、それだけにこだわらず実際の開発で役に立つことを分かりやすくお伝えしていきます。 Cの成り立ちと規格 まずは、Cの成り立ちと規格について知っておきましょう。ちょっと堅苦しい感じがするかもしれませんが、歴史を知っているとなぜこういう書き方をするのか、こういった機能があるのかといったことが分かります。また、規格を知っているとプログラミングをしていて何か
ACM/ICPC(プログラミングコンテスト)系列の問題を解くことを目標にして,各種アルゴリズムを C++ で実装してみた.極めて意地が悪い類の問題には対応していないし,特定の入力に対して高速に動くということもない.計算量も最良とは限らない. これらを参考にする方への注意とお願い: これらの記述は正確とは限りません.参考文献を参照することを強く推奨します.間違っている場合は是非教えてください. これらのプログラムは間違っているかもしれません.各人で検証することを強く推奨します.バグがあれば是非教えてください. 分類が怪しいので,これはこっちだろう,ということがあればコメントを下さると助かります. 注意! 現在書き換え中 TODO 分類を正しく行う. 全体的に説明と使い方を詳しく. Verify していないものを Verify. ボロノイ図(いつになることやら……) 基本 テンプレート グラフ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く