C++

C++ C++/CLI の配列の書き方

分からなくなる。 C++ int p[ 10 ]; int p[ ] = { 1, 2, 3 }; // 初期化 or int* p = new int[ foo ]; // 要素数を変数とする場合。int foo = 5; C++/CLI // unmanaged int* p = new int[10]; int p[ ] = { 1, 2, 3 }; // 初期化 // managed array< int >^ p…

Visual Studio_LNK2001 外部シンボル "xxxxx" は未解決です

問題ファイルは hogehoge.obj 。 関数が宣言されているのに、定義されていない場合に出る。 詳しく 関数のプロトタイプだけしかなくとも ( 定義されていなくとも ) 、ソースはコンパイルできるので、 hogehoge.obj が生成される。 リンカは、オブジェクトフ…

Visual Studio_このプロジェクトではユーザーの入力が必要です

Git から落としてソリューションファイル ( .sln ) を実行したら、下記のエラーが表示され、プロジェクトが読み込まれない。( 0 プロジェクト ) このプロジェクトではユーザーの入力が必要です。詳細を調べるには、プロジェクトを再度読み込んでください。 …

Visual C++_プロジェクトに対して作成されるファイルの種類

C++

プロジェクト名..vcproj やら .vcxproj やら .vcxproj.filters とか未知だったので。 実際にプロジェクトにインクルードされるファイルは、プロジェクトの種類・およびウィザードで選択したオプションによって異なる。 .exe .dll 実行可能ファイルまたはダイ…

Visual Studio_C++ で Windows フォームの項目がない

C++

結論から 場所C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\内にあるフォルダ「VCProjectItems_WDExpress」を「VCProjectItems」にリネームする。 何故か 「 Visual Studio のレジストリのパスの値」と、「 Visual C++ のテンプレートのフォルダ…

C++_ポインタと配列の一覧

↑ が投稿日付 new

C_演算の優先順位と結合規則

コピぺ。 優先順位:どれから先に演算を行うか。 結合規則:優先順位が同一であった場合、どの演算を先に行うか。 単項演算:被演算子 ( オペランド ) が一つだけあるような演算のこと。ex ) ++x, x++, &x, *x, !x など。 被演算子:演算子の演算の対象。5 *…

C++_ポインタとインクリメント 追加

コードの文脈から何となくわかったが、詳細には分からなかったので。 前提知識。演算の優先順位と結合規則を知っておく必要あり ? foo++:後置演算 ( 後置インクリメント )bar = foo++ の場合、代入した後で ++ 処理。* や & の単項演算子や、四則演算子より…

C++_配列の &*p メモ

&*p が分からん。&p も分からん。p は配列。未解決。 配列からポインタの読み替え の例外 読み替える:意味は同じで語句だけを変える。ex ) A を B に読み替える。A の意味を保ったまま B という名称に変わる。 式の中では、配列は「先頭要素へのポインタ」…

C_ポインタと配列における添字演算子

p:はポインタ。 添字演算子 [ ] はオペランドのポインタに対する加算命令。p [ n ] の場合は、* ( p + n ) を行っているのと同じ。ex ) p [ 4 ] の場合は * ( p + 4 ) と同じ。まずポインタに 4 を加算 ( アドレス値に 4 * 4 で 16 加算 ) し、そのアドレス…

C_ 2 つのポインタ変数の差と比較

コピペ。 ある配列内の要素を指している 2 つのポインタ値 p, q の差 p - q をとると、それは p が指す要素の添字と q が指す要素の添字の差となる。 &ary[4] - &ary[1] == 3 これは、2 つのポインタが指すアドレス間にある要素の個数と思えばよい。 「ポイ…

C_ポインタ変数のインクリメント

コピペ。 配列のある要素を指しているポインタ変数 p に対して、インクリメント操作 p++ を行うと、 p が指す要素の添字が 1 増え、デクリメント操作 p-- を行うと、添字が 1 減る。 ex ) では、配列 ary の先頭のアドレスが代入されたポインタ変数 p に対し…

C_ ポインタ値 + 整数値

コピペ。ソース意味は分かったと思う。配列とポインタ 02 の図参照。 配列の要素を指すポインタ値には、整数値を足したり引いたりすることができる。その場合、ポインタ値が指す要素から、足された ( 引かれた ) 数だけ後ろ ( 前 ) の要素を指すポインタ値と…

C_ポインタによる配列のアクセス

ただのコピペ。分からなくなる。 これは整数型配列。 int ary[5]; だが、下記は配列 ary の先頭要素 ary [0] を指すポインタとなる。&array [0] と同じ。 ary; また、配列 ary の先頭要素のアドレスが入ったポインタ変数 p に、p [n] のように添字を付けると…

C_ 式は変更可能な左辺値である必要があります

上記のコンパイルエラーが出た。 左辺値をもつ:代入の対象となる。左辺値を持たない:代入の対象とならない。左辺値:代入式の左辺にくることが可能な式のこと。 メモリ位置を示す式は「左辺値」式と呼ばれる。左辺値は、記憶領域としてのロケ―ター値や 等…

C_ 配列とポインタ 02

C++ で書いていたけど C に通じるので C タグ。よく分からん。 ポインタのアドレス計算 → ポインタと文字列 ポインタのアドレス計算 ポインタに 1 加える、ということはポインタに格納されているアドレス + 型のサイズ、のこと。ポインタに格納されているア…

C_配列とポインタ 01

C++ で書いていたけど C に通じるので C タグ。よく分からん。 配列変数名は、配列の先頭アドレスを指している。 char array[10]; // array と &array[0] は同じ値となる。 変数と配列の違い char a = 'A'; // a は A // &a は a のアドレス char a[4] = "AB…

C++_文字・文字列の取り扱い

配列ポインタとかよく分からない。ただのコピペ。 char 型 C 言語では文字を取り扱う場合に、char 型を利用する。 char 型の変数のサイズは 1 バイトなので、1 つの変数には 1 文字しか格納できない。記述する時は 'A' と ' を使用。1 バイト = 8 ビット。1…

C++_配列 メモ 02

ポインタが知りたいが復習がてら。要素数の取得 → 配列とポインタ 要素数の取得 sizeof で求まる。 p:配列の変数。1 byte = 8bit 。1 bit は 二者択一。0 or 1 。 sizeof(p):配列全体のバイト数。sizeof(*p):1 要素のバイト数。sizeof(p) / sizeof(*p):…

C++_配列 メモ 01

ポインタが知りたいが復習がてら。 宣言 → 初期化 → 既定値 ソースの変数は使いまわし。本来なら別変数。 宣言 // OK int p[10]; // OK const int num1 = 10; int p[num1]; // 定数式の必要あり。 // NG int num = 10; int p[num2]; // OK int num = 10; int…

C++_virtual 仮想関数 メモ

前提知識:多態性ポインタ云々はスル―。よく分からん。デストラクタ云々もスル―。重要そうけど。 派生クラスで再定義されるメンバ関数のこと。virtual 修飾子をつける。親クラスのポインタから、子クラスの ( オーバーライドした ) 関数を呼び出す時に使う。…

C++_例外メッセージを受け取る

exception クラスの what を使う。 try { } catch (std::exception & e) { std::cout << e.what() << std::endl; } こちらから。 https://cpprefjp.github.io/reference/exception/exception.html 以上。 Debug で動かしてコンソールにメッセージが出力され…

C++_std::stringstream とは

書式付の入出力に使用する。 std::string は0 埋め・小数点付きなど C# での string str = ${50.123:f2} が出来ない。 ex ) std::stringstream ss; ss << std::setw(3) << std::setfill('0') << 5; //005 auto str = ss.str(); //std::string に変換 setw ( …

C++_値クラス ( 値オブジェクト ) メモ程度

「コンストラクタに引数を渡して初期化」記事の Memo の箇所を掘り下げたかったが、結構重いのでさらっと調べ。よく分からん。 参照オブジェクト new したら必ず delete 。削除し忘れや、削除の重複など注意しなければならない。 値オブジェクト 次のような…

C++_operator= とは何か 03

オーバーロードする時にも代入を意味する機能にするのが良い。 ex ) operator= を使ったコード class CHoge { private: int _hI; public: int GetInteger() { return _hI; } CHoge & operator=(int i) { _hI = i; return *this; // 自分自身への参照型 Choge…

C++_operator= とは何か 02

演算子を関数名として使いたい場合、そのままだと使えないので operator キーワードをつける。つまり「 operator 演算子」は関数名。ということかと。 オペレータとは、関数名が C++ の演算子であるような関数のこと。operator は演算子に他の意味を持たせる…

C++_コピーコンストラクタとは

operator= の意味が不明なので、コピーコンストラクタを調べればわかるかと思ったが結局分からず。コピーコンストラクタもよく分からん。なんで↓問題が回避できるのか不明。 コピーコンストラクタ C ( const C & ); C &operator=( const C & ); オブジェクト…

C++_operator= とは何か 01

調べても不明。コピーコンストラクタという単語の意味も調べる必要が ?operator や T operator=(~ ) というコードが意味不明だった。 C ( const C & ); C &operator=( const C & ); 代入演算子のオーバーロード。 operator= はメンバ関数の名前に過ぎない。…

C++_ポインタと参照の書き方

分からなくなったので再度調べ。 ポインタ 参照 代入値の利用 *ポインタ変数 参照型変数 引数として使用 呼び出し元でアドレスを指定。 定義箇所でポインタ明示。 呼び出し元はそのまま。 定義箇所で参照型明示。 メンバのアクセス -> ( アロー演算子 ) . ( …

C++_小数点桁数を指定する書式設定

前に sprintf を使ったがもっといいのがあった。 std::string だと書式指定はできない。替わりになるものが std::stringstream 。 double num = 112.14328; std::stringstream numStr; numStr << std::fixed << std::setprecision(2) << num; //112.14 かな…