各種プログラミング言語についての情報です.LinuxやCygwinなどのコマンドライン環境を前提としているものが多いです.プログラミングの全体的な解説というよりも,なにかプログラムを組む際にプラスαになるものを目指しています.
各種プログラミング言語についての情報です.LinuxやCygwinなどのコマンドライン環境を前提としているものが多いです.プログラミングの全体的な解説というよりも,なにかプログラムを組む際にプラスαになるものを目指しています.
例えばこう、ディレクトリの名前とその中のファイル名を / でくぎって結合する関数を書くとします。引数が std::string でも使いたいし const char* でも使いたい、ということで、たいていは void JoinFilePathStr(const string& dir, const string& base, string* out) { out->clear(); out->append(dir); out->push_back('/'); out->append(base); }なんてのを書くんじゃないかと思います。この関数で問題になるのは const char* を渡すと不要な string object が一度できることで、敬虔な C++ 屋さんだと、 void JoinFilePathStr(const string& dir, const char* base,
()、関数呼び出し演算子、関数オブジェクト 演算子の表へ ページの先頭へ () は、関数呼び出しの演算子です。これをクラス定義の中でオーバーロードすると、クラスオブジェクトの後ろに () を付けて、関数呼び出しの形式で呼び出せるようになります。 まず、定義の仕方を見てみましょう。次の例では、整数の引数 iValue を取り、これを 2 倍にして返す演算子 () を定義しています。 class CManiac { public: int operator()(int iValue) { return 2 * iValue; } }; 次に、これを使う側の例を見てみましょう。 int main() { CManiac maniac; // クラスオブジェクト maniac を作成する。 int iValue = maniac(1); // 関数呼び出し演算子 () を maniac に適用する
あわない、結果が…。かれこれ50時間くらいカルマンフィルタに時間を費やしいますが、結果が収束しません。もう泣きです。ソースはここにあります。 『助けてくれ~』といったら『あきらめましょう、あきらめまっしょう~♪』と歌を歌ってくれました…。やってらんね。 それから数時間後、なんとか解決しました。原因は単純で、初期値を真値に近い値にしていなかった、ただそれだけでした。 結果のExcelファイルも置いておきます。これです。 Specification: 積分間隔0.01s修正タイミング1.0s離散カルマンフィルタ(ΦやΓを計算するほうのやり方)P初期値0.1対角行列 ※その後、『低精度MEMSセンサと汎用GPS受信機の融合による高精度航法システムの研究』から辿れるpdfの中に、多少詳しい説明を書きました。 22:32 fenrir が投稿 : 固定リンク | | | トラックバック このエントリ
この連載では、Bjarne Stroustrup氏へのメールインタビューを通して、プログラミング言語設計者の生の声を読者の皆様に直接お伝えしたいと思います。今回は、 Stroustrup氏が考える現在の「C++開発者の動向」について伺いました。言語誕生の瞬間からC++開発者を見守り続けている同氏は、現状をどのように考えているのでしょう? 去る9月9日と11日。東京、大阪の2拠点で10回目となるエンバカデロ・デベロッパーキャンプが開催された。今回のイベントの目玉は、つい先日に発表されたばかりのネイティブWindows開発ツール「Delphi 2009」と「C++Builder 2009」だ。Delphiのプロダクトマネージャを務めるエンバカデロ・テクノロジーズのNick Hodgesが、Delphi/C++Builder 2009の新機能を紹介したセッション内容をレポートする。
A Free, Fast, and Small Automatic Formatter for C, C++, C++/CLI, Objective-C, C#, JS, GSC, and Java Source Code Artistic Style is a source code indenter, formatter, and beautifier for the C, C++, C++/CLI, Objective-C, C# and Java programming languages. Written in C++, it can be used from the command line or incorporated as a library in another program. Options can be entered from the command line
文字列化演算子 マクロ関数だけで使用できる、便利な演算子が用意されています そのひとつが文字列化演算子です マクロ関数で受け取った値に対して#記号をつけることで それを文字列、すなわちダブルクォーテーションをつけた状態に置換えます (プリプロセッサディレクティブであることを忘れないでください。あくまでソース上で置き換わるだけです) #define STRING(str) #str このマクロ関数は、仮引数の値をダブルクォーテーションをつけた状態に置き換えます 次のプログラムを実行してください #include <stdio.h> #define PRINT(str) printf(#str "\n") #define STRING(str) #str int main() { PRINT(Kitty on your lap); printf("%sバイトは1キロバイト" , STRING(
止まる,性能が出ない…システム開発に携わる人なら誰もがぶつかった経験のあるトラブルでしょう。特に,通常は問題がないのに,負荷が高くなったり,長時間連続稼働した時にだけ発生するトラブル,さらにどういった場合に発生するのかわからないトラブルはやっかいです。 でも,原因を突き止める方法はあります。この連載では,そういったトラブルをタカハシくんとスズキさんの2人といっしょに解決していきましょう。 タカハシくんは,IT企業の若手エンジニア。元気はあるのですが,おっちょこちょいなのが欠点です。LinuxでC言語やJavaを使った開発には少し自信が出てきましたが,トラブルがあるとなかなか原因がわからず,先輩のスズキさんに教えを請う毎日です。スズキさんはこの道ン十年,汎用機でのアプリケーション開発の経験もあるベテラン・エンジニアです。 第1回目は,高負荷時にアプリケーションが異常終了するというトラブルです
■仮想関数とは何か MSDN Libraryによると、仮想関数とは「仮想関数は、派生クラスで再定義するメンバ関数です。基本クラスへの参照またはポインタを使って派生クラス オブジェクトを参照すると、そのオブジェクトの仮想関数が呼び出され、派生クラスにあるその関数が実行されます。」と説明されています。これは以下のような振る舞いを表しています。 main.cpp #include <iostream.h> class CBase { public: CBase(){} virtual ~CBase(){} void PrintString() { cout<<"PrintString of CBase is called"<<endl; } virtual void PrintStringVirtual() { cout<<"PrintStringVirtual o
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く