スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

自分用C++Tips

個人的に忘れがちなC++のTipsのメモ書きです。 気がついた時に増やしていきます。



<マクロ関数によるクラスのメンバ、構造体の要素の展開>

#define RGBColorOpen(col) col.r,col.g,col.b

class RGBColor
{
public:
double r;
double g;
double b;
};

こんな感じで、マクロ関数とクラスを定義して、やれば引数が2つ以上の関数への引数渡しが楽になる。

例えば、
 glColor3d(RGBColorOpen(data.color));

とすることで、

 glColor3d(RGBColorOpen(data.color.r, data.color.g, data.color.b));

と書いたのと等価になります。
外部のライブラリで用意されている関数を使う際に便利かも。

<参考>
http://opencv.jp/sample/basic_structures.html
http://www.ne.jp/asahi/hishidama/home/tech/c/preproc.html




<enumの要素数>

enumで値を自分で指定しなければ、最後に追加した要素の値が、それを除いた要素の数として使える。

enum a
{
A_APPLE,
A_BEE,
A_CAT,
A_NUM
};

この時、A_NUMは3になるので、A_NUM以外に定義した要素(A_APPLE,A_BEE,A_CAT)の数と同じになる。
この値は配列の確保とか、bitsetを使う時に使える。

<参考>
http://www.geocities.jp/ky_webid/cpp/library/008.html




<char*型からstring型>

char*からstringへの変換は、代入と同じ記述で行えるが、その場合文字列を記憶するメモリは別の場所に生成される。

確認用ソース:

#include < iostream >
#include < string >

using namespace std;

int main()
{
string str;
char cha[80] = "HatsuneMiku";

str = cha; // 代入と同じ書き方でOK

str[2] = 'c';
str[3] = 'h';

cout << "str:" << str << endl;
cout << "cha:" << cha << endl;
}

出力結果:
str:HachuneMiku
cha:HatsuneMiku




<型変換演算子>

<参考>
http://questionbox.jp.msn.com/qa2968923.html
関連記事

comment

Secret

trackback


この記事にトラックバックする(FC2ブログユーザー)

Panasonic スチーマー ナノケア 【ナノイーとプラチナスチーム1台2役】 ゴールド調 EH-SA60-N |

Panasonic スチーマー ナノケア 【ナノイーとプラチナスチーム1台2役】...
プロフィール

シロマ=ナノ

Author:シロマ=ナノ
参加予定イベント:
 ・C91 3日目西め28a

DIVA-AC:
 LV.199 白のシンフォニア

Flashカレンダー
Twitter
カテゴリ
最新記事
PCLクレジット
当ブログは、ピアプロ・キャラクター・ライセンス(http://piapro.jp/license/pcl)に基づいて、クリプトン・フューチャー・メディア株式会社のキャラクター 「初音ミク」「鏡音リン」「鏡音レン」「巡音ルカ」「Meiko」「Kaito」及びそれらに依拠して制作されたキャラクター「亞北ネル」「弱音ハク」を描いた作品を公開しています。
アクセスカウンター
検索フォーム
主な作品
WindowHelper(フリーソフト)
WindowHelperポップ

描いた絵・イラスト
リンク
バナー
当サイトはリンクフリーです。
バナーを使用したい場合は以下の画像をお使い下さい。
(リンク先に200x40サイズを置いてあります)

・通常版
banner

・ミク版
banner
RSSリンクの表示
ブロとも申請フォーム

この人とブロともになる

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。