作者ホームページサービス(hp.vector)は終了いたしました。 長らくのご利用、ありがとうございます。 ご不明な点があれば、お問い合わせページをご覧の上、お問い合わせください。 ※15秒後にトップページに戻ります。 (c) Vector HOLDINGS Inc.All Rights Reserved.
作者ホームページサービス(hp.vector)は終了いたしました。 長らくのご利用、ありがとうございます。 ご不明な点があれば、お問い合わせページをご覧の上、お問い合わせください。 ※15秒後にトップページに戻ります。 (c) Vector HOLDINGS Inc.All Rights Reserved.
constは内部リンケージ C++でCのrealloc( )に相当する関数は? NULLより 0 の方がいい スマートポインタ 菱形多重継承の対処 コピーコンストラクタとデフォルトコピーコンストラクタ Koenigルックアップ const は内部リンケージ (プロ言§9.2) constはデフォルトで内部リンケージだそうです。ですから、Cで言うと "static"が付与されているイメージになります。C++では static も少し別の 意味をもつことになりますので、混乱しないように。 ですから、下記2ソース中のiFooは衝突しません。OKということです。 ---foo.cpp--- const int iFoo = 10; ... ---bar.cpp--- const int iFoo = 20; ... 私がconstキーワードに興味を持ったのは、Stroustrup
このブラウザーはサポートされなくなりました。 Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。 Bobby Schmidt Microsoft Corporation July 9, 2002 この資料では、 Microsoft® Visual C++® .NET にまだ不足している C++ 標準に準拠するために必要な多種多様なテンプレート機能について説明します。 不足している標準準拠機能の部分的な一覧は、 Visual C++ ドキュメントで参照できます。 その一覧は、 「Visual C++ 実装が C++ 標準に準拠していない既知の点の一部」を示しています。 ここで重要な言葉は "一部" です。 そう、"すべてではない" のです。 そういうわけで、公開された一覧には掲載されていない、 いくつかの標
やりたいこと 以下のようなテンプレート引数を2つ取るテンプレートクラスがあったとする. #include <stdio.h> template<typename A, typename B> class XXXX { public: void func() { printf("General\n"); } int func2() { return 100; } };ここでテンプレート引数 A が int の時だけ,func() の動作を変えたい.つまり特殊化したい. というのやりたいこと. 方法1 (コンパイルエラー) テンプレート引数Bを残したまま,Aだけをintに特殊化した関数を付け加えてみる. template<typename B> inline void XXXX<int, B>::func() { printf("Special\n"); }これは以下のようエラーが出てコンパイ
より詳しい解説ノートです。 基本的な コンテナ/反復子/関数オブジェクト/アルゴリズム に的を 絞って詳しく解説しています。 stack/queue/priority_queue/bitset/string/rope/valarray/complex については、 また後日、STLプロフェッサー・ノートの方で詳しく解説します。 初歩的な説明は全部とっぱらっていますが、 それでもやっぱり見にくいです。 それから、SGI社のSTLについてはcompose辺りの説明が若干違います。 〔STL-コンテナ〕 ■コンテナ共通の項目 全てのコンテナクラスは、デフォルトコンストラクタ、コピーコンストラクタ、デストラクタを提供する。 また、要素の範囲を指定して初期化を出来る。 ◆コンストラクタによる初期化のサンプル 1) コンテナの要素から初期化をする std::list<int> l ; <省略> std
いよいよ始まります第4部。先ず第1章では標準ライブラリについてざっと話していこうと思います。みんなでこのライブラリを使い倒してしまいましょう! それでは、今回の要点です。 どんなコンパイラにでもついてくることが推奨されている標準ライブラリなるものが存在する。 標準ライブラリ内の名前は std 名前空間に属している。 stdio.h 等C言語のヘッダファイルは cstdio のような名前で提供される。 iostream.h 等古いC++のヘッダファイルは iostream のような名前で提供される。 では、いってみましょう。 さて、皆さんはヘッダファイルを一切インクルードせずにプログラムを組んでみたことはありますか? もちろんヘッダファイルの中身を抜き出して書き込んでもダメです。 え? それじゃぁ文字も表示できないじゃないかって? それは全くその通りで、C++で iostream.h などの
What's new 2008/06/30 Google 検索窓をつけてみました。 2008/06/14 身長や体重など複数の基準でソートする例 を追記。 2008/06/14 英文字文書を読んで、文字数の頻度順にソートする例 を追記。 古い What's new 当サイトで提示するサンプルコードは、あまりにも単純明快で、一見つまらないぐらいに見えるはずです。しかし、もしあなたがそう感じたのであれば、それは、ねらいどおりで、大成功と言えます。ちょっと難解と思われている C++ が、つまらなく見えるほど平易に解説されているということですから。 基礎(入門)編 その他(非 C++ 的) エッセー C++ はアセンブリ言語のように軽快であるにもかかわらず、仮想クラスやクラスの継承、オペレータのオーバーロード、そして、テンプレートと、高級言語のプログラミングテクニックを余すところなく駆使で
イテレータ C/C++でのプログラミングで避けて通れないのが"ポインタ"です。ポインタは配列の要素を順にアクセスすることができます: // 配列の要素をプリントする。 void print_array(int* a, int N) { int* p = a; for ( int i = 0; i < N; ++i ) { cout << *p << ' '; ++p; } cout << endl; } int a[10]; print_array(a,10); 同様に、配列とは異なるデータ構造である単方向リストの内容をプリントするには、 struct slink_of_int { int data; slink_of_int* next; // 次のリンク(末端には0を設定) }; // リストの要素をプリントする void print_list(slink_of_int* p) { w
分類:[C/C++] びーしむです。 あるクラス Data がありまして、データは派生クラスで定義しようと思いました。 これらの派生クラスは vector や list などを使ってデータを保持しています。 派生クラスのポインタを受け取れればデータにアクセスできるのですが、 親の Data クラスのポインタしか受け取れないとき、これらのデータにアクセスする方法はないでしょうか? std::vector<int>::iterator itV; std::list<int>::iterator itL; hoge<int>::iterator it1 = itV; hoge<int>::iterator it2 = itL; こんなことができれば、親のクラスに virtual hoge<int>::iterator begin() virtual hoge<int>::iterator end
ストリームクラス -- 階層図 ストリームクラスに対する自分の理解がいまいちなので、整理するために階層図を作ってみた。 元ネタは、『C++ 標準ライブラリ チュートリアル&リファレンス』 (アスキー) である。 とりあえずは骨格のみ。メソッドなどについては、おいおい肉付けしていく予定。 まずは、ストリームクラスの階層図。 太字にした basic_xxx は、 後ろに <> が付いていることからも分かるようにテンプレートクラスである。 それを char および wchar_t で特殊化したものが、istream や wistream などになる、というわけだ。 ボックスの近くに書いてある < …… > は、 そのクラスを宣言または定義しているヘッダーファイルである。 とくに iosfwd はクラス名だけを宣言しており、 クラスの実体が不要な場合は、 できるかぎり iosfwd だけをインクル
目次 ホーム 連絡をする RSS Login Blog 利用状況 投稿数 - 1078 記事 - 2 コメント - 27224 トラックバック - 363 ニュース 著作とお薦めの品々は 著作とお薦めの品々は 東方熱帯林へ。 わんくま 東京勉強会#2 C++/CLI カクテル・レシピ 東京勉強会#3 template vs. generics 大阪勉強会#6 C++むかしばなし 東京勉強会#7 C++むかしばなし 東京勉強会#8 STL/CLRによるGeneric Programming TechEd 2007 @YOKOHAMA C++・C++/CLI・C# 適材適所 東京勉強会#14 Making of BOF 東京勉強会#15 状態遷移 名古屋勉強会#2 WinUnit - お気楽お手軽UnitTest CodeZine Cで実現する「ぷちオブジェクト指向」 CUnitによるテスト駆
メンバ関数ポインタの使い方については前回ので問題ありません。今回は、メンバ関数ポインタについての細かい話をしようと思います。 では、今回の要点です。 メンバ関数ポインタは仮想関数の呼び出しも適切に処理してくれる。 メンバ関数ポインタのサイズは int のサイズと同じとは限らない。 では、いってみましょう。 前回はメンバ関数ポインタの文法と使い方について話しただけだったので、先ずは1つ例でも挙げておきましょう。 // Lane.h // 実行レーンクラス template <typename t_Lane> class CLane { private: // enum はクラスの中でも定義できます // int 型の定数を使いたい場合によくやります enum Const{ LaneSize = 16, }; // レーンのサイズ typedef void (t_Lane::*FPLANE)(
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く