プログラミング

C++_メソッドの呼び出し方メモ

「C++_コンストラクタに引数を渡して初期化」内の「===Memo===」へ追記的な立ち位置。 // A auto ch = new CHoge(); ch->xxx(); delete ch; // B CHoge ch; ch.xxx(); クラスは「 . 」でそのクラスのメソッドを呼び出せる。( B )A の auto 、この型はポイン…

C++_配列を std::vector に変換

値を std::vector にコピーする。 int intAry[5] = { 1, 2, 3, 4, 5 }; std::vector<int> intVec(std::begin(intAry), std::end(intAry)); std::vector<型> 変数名 ( 型* first, 型* last); と記述すると、first から last が指す先までのデータで初期化できる。 </int>…

C#_エスケープの手間を省く

ごっちゃになる。 エスケープ:逃亡する、脱出する、逃れる、免れる、はずれる。シーケンス:連続。順番に並んでいること、など。連続した文字列から逃れる、ということは特殊な意味になるということ。かな? エスケープ文字 正反対の 2 つの意味を持つ。1 ) …

「以上以下」のソース メモ

不安になる時がある。 言語はC# int[ ] test = new int[ ] { 10, 22, 33, 34, 45, 46, 57, 58, 60 }; foreach (var i in test) { if (30 <= i && i <= 50) { Console.WriteLine(i); } } //33, 34, 45, 46 10 ~ 35 の範囲、または 50 ~ 80 の範囲。( for 略…

高階関数とは 02

よく分からんので C# のソースコピペ。 高階関数のメリット 定義する関数の数を減らし、アルゴリズムをより抽象的に捉えることが出来る。抽象的:具体性にかけるさま。 ex ) // データ用意 List<int> data = new List<int>(); data.Add( ~ // 高階関数呼び出し Hoge(d</int></int>…

高階関数とは 01

関数オブジェクト ( 関数のように振る舞うことのできるオブジェクト ) を習得しようと思ったが一先ずこっち調べた。 [ たかしな ] と打った方がすぐに変換できる。 「引数または戻り値を、関数とする」関数のこと。通常は int 型や string型など の型だが、…

C++_静的メンバ 03

静的メンバ関数について。 静的メンバ変数は実体がなくとも存在している ( インスタンス生成しなくとも存在 ) 。静的メンバ変数はプログラムの初めに初期化されているので、コンストラクタが呼ばれていなくても参照することに問題はない。 ex ) 実体なしで s…

C++_静的メンバ 02

参照先 URL で静的変数と静的メンバ変数が出てくるが、静的変数は関数内の static 変数で、静的メンバ変数はクラス内の変数。 要点 静的メンバ変数は静的変数なので、初期値は 0。初期値を設定したい場合は定義部分に。( main.cpp の int Hoge::m_num = 10; …

C++_静的メンバ 01 - b ( extern なしでエラー )

a 記事にてグローバル変数のコードを写経して実行してもエラーで躓いたのでその軌跡。 参照先のコードをそのまま下記のように記述したが、リンクエラー LNK1169 と LNK2005 が発生。 LNK1169:1 つ以上の複数回定義されているシンボルが見つかりました。この…

C++_静的メンバ 01 - a

C# の静的メンバと同じだが、C++ の書き方を知らないと理解できない。static クラスと普通のクラスとの区別つかなくなってきた。 ・静的メンバ変数は、さらに実体を別に宣言する必要がある。・静的メンバ変数は、どれだけインスタンスを作っても共有される。…

C++_ new を使うとき・使わないとき

参考サイトを読み進めていくのに必要な知識メモ。 クラスからオブジェクトを生成するとき new を使わないとスタック領域に実体が確保される。スコープから抜けると自動的に解放される。 new を使うとヒープ領域に実体が確保。new による戻り値は、実体を指し…

C#_static メモ 02 ( 静的コンストラクタ )

通常のコンストラクタが新しいインスタンスが生成されるたびに呼び出されるのに対し、静的コンストラクタは1 度だけ呼び出される。呼び出されるタイミングは、そのクラスの何らかのメンバに初めてアクセスしたとき。 ex ) どちらで実行しても、以下のように…

C#_static メモ 01

C++ のstatic 調べていて分からなくなったので復習。 ------ static:静的なメソッドやフィールドを作るための予約語。 静的:実行時に変化しないこと。動的が実行中の条件によって動作や結果が変わるのに対し、静的は状況によらず固定された動作や結果とな…

C#_継承 引数ありの基底クラスのコンストラクタを呼び出す

継承の引数云々が分からなくなったのでメモ。親クラス=基底クラス。派生クラス=子クラス。 派生クラスのインスタンスを生成する際、 自動的に基底クラスのコンストラクタも呼び出される。しかし呼び出されるコンストラクタは、引数なしのコンストラクタ。 …

C++_ヘッダーファイル と ソースファイル

単語・指定子 前方宣言:定義を与えていないプログラム要素を表すシンボルの事前宣言のこと。変数、関数、型などに対するシンボルが含まれる。 リンケージ:ファイルを越えて利用できるか否か。 外部リンケージ:ソースファイルを超えて同じ実体を共有。ファ…

C++_メイン関数とは

プログラムがメモリにロードされてブートストラップ処理後、最初に起動される関数。 戻り値は、「int 型」「引数なし」「2 つの引数」が定義可能。 int main() { /* ... */ } int main(int argc, char* argv[ ]) { /* ... */ } main 関数の return 文を省略…

モジュール結合度 ( 意味メモ )

モジュール:関数や変数を一定の単位でまとめたもの。クラス。モジュール粒度:モジュールが持つ機能の大きさを粒度という。 モジュール同士の密接さを表す尺度。 モジュール結合度が低いほど良いプログラムとされている。モジュール間の結合が弱いほど、他…

PNM のファイル構造 02 ( 画像データ )

ファイル構造は「ヘッダ部」と「データ部」からなっている。ヘッダ部は、ファイルヘッダ・情報ヘッダで構成されている。データ部は、パレットデータ ( ない場合もある )・画像データで構成されている。 ヘッダ情報に引き続き配置されるのが画像データ。デー…

PNM のファイル構造 01 ( ヘッダ情報 )

ファイル構造は「ヘッダ部」と「データ部」からなっている。ヘッダ部は、ファイルヘッダ・情報ヘッダで構成されている。データ部は、パレットデータ ( ない場合もある )・画像データで構成されている。 ファイル構造 1 行目 ファイル形式の指定。P1 など。 2…

Bitmap のファイル構造 03 ( 画像データ )

ファイル構造は「ヘッダ部」と「データ部」からなっている。データ部は、パレットデータ ( ない場合もある )・画像データで構成されている。画像データの各メンバ名の説明。 24 bit RGB 値の画像データについて、RGB 各色で 8bit 深度の値を格納するだけだが…

Bitmap のファイル構造 02 ( 情報ヘッダ )

ファイル構造は「ヘッダ部」と「データ部」からなっている。ヘッダ部は、ファイルヘッダ・情報ヘッダで構成されている。情報ヘッダの各メンバ名の説明。 情報ヘッダ 画像としての情報が格納されたヘッダ。構造体名は BITMAPINFOHEADER 。OS / 2 ビットマップ…

Bitmap のファイル構造 02 ( ファイルヘッダ )

ファイル構造は「ヘッダ部」と「データ部」からなっている。ヘッダ部は、ファイルヘッダ・情報ヘッダで構成。ファイルヘッダの各メンバ名の説明。 ファイルヘッダは BITMAPFILEHEADER という名の構造体。 bfType: BMP形式を識別するマジックナンバー。 必ず…

Bitmap のファイル構造 01

Windowsでの標準的な画像フォーマット。基本的に無圧縮なためファイル構造がわかりやすい。 ビットマップとは本来画像の表現形式で、 ピクセルの集合によって表現される画像のこと。 ディスプレイやプリンタなど、多くの画像を扱うハードウェアは左上から処…

ファイルフォーマット ( ファイル構造 ) とは

OpenCV は B G R 順で画像データを読み込んでいるが、numpy.ndarray だと R G B 順になったりする。一体どのように読み込んでいるのか・画像データの並び順は全て同じなのか、など疑問に思ったのでメモ。 ファイルの保存形式。形式:物事を行う時の一定のや…

ビット順 のメモ

ビッグエンディアン と リトルエンディアン の追記的な。バイナリファイルが少し理解できる ? メモリを1バイト単位でしか扱わないのであればエンディアンは考慮する必要がないが、2 バイト以上の値を扱ったり2 バイト以上を使用して文字表現を行うする場合に…

ビッグエンディアン と リトルエンディアン

前提知識 バイトオーダ:エンディアンとも。複数のバイトで構成されるデータを記録・伝送する際に、どのような順番で各バイトを記録・伝送するかを表す順序のこと。バイト単位で見たときのデータの並び順。バイトオーダはプロセッサによってのみ変化する。 …

C++_int 型を wchar_t 型に変換

_itow より安全な _itow_s を使用する。 errno_t _itow_s( int value, wchar_t *buffer, size_t size, int radix ); // C++ only errno_t _itow_s( int value, wchar_t (&buffer)[size], int radix ); 引数 value:変換される数値。buffer:変換の結果を格納…

C++_wchar_t 型の連結

前の記事はリテラルで、これは変数結合。wcscat でなく、セキュリティの高い wcscat_s を使う。 errno_t wcscat_s( wchar_t *strDestination, //(dest) size_t numberOfElements, //(destmax) const wchar_t *strSource //(src) ); // C++ only errno_t wcsc…

C++_ワイド文字リテラルの連結

リテラル:ソースの中に直接べた書きした文字や数字のこと。 プリフィックス ( 接頭辞 ) を持たない通常の文字列リテラルと、プリフィックスを持つ文字列リテラルは連結することができ、プリフィックスがある方に合わせられる。 // s1とs2、どちらもwchar_t …

C++_ワイド文字 wchar_t

C でも使う。 ワイド文字とは、1 文字表現するのに 2 バイト用いる文字のこと。型は wchar_t 。ユニコード。WCHAR も同じ意味。 wchar_t は、環境でサポートされているすべてのロケール ( 国・地域設定の ) の中で、最も大きい文字を表現できる大きさを持つ…