C++樹林– category –
-
C++樹林
【C++】関数のオーバーロード活用の2大パターン(引数の型・数の違い)
はじめに C++の関数のオーバーロードは、「同じ名前で、引数リストが異なる関数を複数定義できる」機能です。この「引数リストが異なる」という条件は、主に2つのパターンに分類できます。 引数のデータ型が異なるパターン 引数の個数が異なるパターン こ... -
C++樹林
【C++】関数のオーバーロード入門 | 同じ名前の関数を複数定義する方法
はじめに C++の強力な機能の一つに、「関数のオーバーロード (overload)」があります。これは、一つのクラス(またはスコープ)の中に、同じ名前を持つ関数を複数定義することができる仕組みです。 例えば、数値を表示する print という関数を作りたい場合... -
C++樹林
【C++】オブジェクト指向の三本柱「カプセル化・継承・多態性」を分かりやすく解説
はじめに オブジェクト指向プログラミング(OOP)は、単にクラスを使ってデータと操作をまとめるだけではありません。その真価は、「オブジェクト指向の三本柱」とも呼ばれる、以下の3つの強力な概念を理解し、活用することで発揮されます。 カプセル化 (E... -
C++樹林
【C++】クラス定義とメンバ関数の実装(分離/インライン/単一ファイル)
はじめに C++のクラスは、データ(メンバ変数)と操作(メンバ関数)をまとめた「設計図」です。このクラスを実際にプログラムで利用するには、まずクラスを定義し、次にそのメンバ関数の具体的な処理内容を実装する必要があります。 メンバ関数の実装には... -
C++樹林
【C++】クラスの定義とメンバ関数の実装方法を解説
はじめに C++のオブジェクト指向プログラミングの核となるのが「クラス (class)」です。クラスは、関連するデータ(メンバ変数)と、それらを操作するための一連の関数(メンバ関数)を一つにまとめた、独自のデータ型の「設計図」です。 この記事では、C+... -
C++樹林
【C++】クラスを使ったオブジェクト指向入門(じゃんけんゲーム作成)
はじめに プログラミングには、処理の「手順」を重視する「手続き型」と、現実世界の「モノ」に対応させて部品化する「オブジェクト指向」という考え方があります。C++は、後者のオブジェクト指向プログラミング(OOP)を強力にサポートする言語です。 OOP... -
C++樹林
オブジェクト指向プログラミング(OOP)とは?そのメリットを初心者向けに解説
はじめに プログラミングの世界には、「オブジェクト指向プログラミング(Object-Oriented Programming, OOP)」という、特に大規模で複雑なソフトウェアを開発する際に不可欠となる、非常に重要な考え方があります。 C++やJava, Python, C#といった多くの... -
C++樹林
【C言語】手続き型プログラミングで「じゃんけんゲーム」を作成する方法
はじめに プログラミングの考え方には、大きく分けて「手続き型プログラミング」と「オブジェクト指向プログラミング」の2つがあります。C言語は、前者の「手続き型プログラミング言語」の代表例です。 手続き型プログラミングとは、プログラムを**一連の... -
C++樹林
【C++/C言語】関数から構造体のポインタを返す方法とstaticの重要性
はじめに C++やC言語で、関数の中で作成した構造体の情報を、呼び出し元のmain関数などで利用したい場合があります。そのようなとき、関数から**構造体を指すポインタを返す(returnする)**という方法があります。 しかし、これには大きな落とし穴があり... -
C++樹林
【C++/C言語】関数に構造体をポインタで渡す方法(値渡しとの違い)
はじめに C++やC言語で、ある関数の中で構造体のデータを使いたい場合、どのようにして関数にそのデータを渡せばよいでしょうか?一つの方法は構造体全体をコピーして渡す「値渡し」ですが、構造体が大きい場合、コピーのコストが無視できなくなります。 ... -
C++樹林
【C++/C言語】構造体のポインタとアロー演算子(->)の使い方
はじめに C++やC言語で、ポインタを使って構造体のメンバにアクセスするには、どうすればよいのでしょうか? 前回、構造体を指すポインタを宣言し、既存の変数のアドレスを代入する方法を学びました。今回は、そのポインタを通じて、指し示している先の構... -
C++樹林
【C++/C言語】構造体のポインタ入門 | アドレスの取得(&)とメンバへのアクセス
はじめに C++やC言語のパワフルな機能の一つに「ポインタ」があります。ポインタは、変数が格納されているメモリ上のアドレスを保持するための特殊な変数です。 構造体に対しても、このポインタを利用することができます。「構造体を指すポインタ」を宣言... -
C++樹林
【C++/C言語】構造体のメンバに「構造体の配列」を持たせる方法
はじめに C++やC言語の構造体(struct)は、入れ子(ネスト)にすることで複雑なデータ構造を表現できます。その応用として、構造体のメンバとして、別の構造体の「配列」を持つことも可能です。 これにより、「クラス」が「生徒の配列」を持つ、「部署」... -
C++樹林
【C++/C言語】構造体の配列の使い方 | 複数のレコードをまとめて管理する方法
はじめに C++やC言語の構造体(struct)は、関連するデータを一つにまとめるのに便利ですが、その真価は配列と組み合わせることでさらに発揮されます。 「社員」の構造体を定義した後、その構造体をデータ型とする配列を宣言すれば、「全社員のデータ」を... -
C++樹林
【C++/C言語】構造体の全メンバを = で一括コピー(代入)する方法
はじめに C++やC言語の構造体(struct)で、ある変数の内容を、別の変数にそっくりそのままコピーしたい場合があります。メンバを一つずつ destination.id = source.id; のようにコピーしていくことも可能ですが、メンバの数が多いと非常に手間がかかりま... -
C++樹林
【C++/C言語】構造体の入れ子(ネスト)の使い方 | 複雑なデータを構造化する方法
はじめに C++やC言語の構造体(struct)は、関連する変数を一つにまとめる便利な機能ですが、その真価は**入れ子(ネスト)**にすることで、さらに発揮されます。 「会社」という大きな構造体の中に、「社員」という別の構造体を複数持たせる、といったよ... -
C++樹林
【C++/C言語】構造体は「型」と「変数(実体)」の違いを理解しよう
はじめに C++やC言語で構造体(struct)を学び始めると、しばしば「型」と「変数(実体)」の概念で混乱が生じることがあります。struct の定義は、あくまで「こういう部品を組み合わせた、新しいデータ型を作りますよ」という設計図を作る作業にすぎませ... -
C++樹林
【C++/C言語】構造体 (struct) の使い方入門!複数の変数を一つにまとめる方法
はじめに C++やC言語でプログラミングをする際、例えば「商品」の情報を管理するために、productID(商品ID)、productName(商品名)、price(価格)といった、関連性の高い複数の変数を個別に宣言するのは非効率です。 このような、互いに強く関連する複... -
C++樹林
【C++】ポインタ変数に[]が使える?ポインタの配列風アクセスの仕組み
はじめに これまでの解説で、私たちはC++の配列とポインタの間に存在する、切っても切れない深い関係を探ってきました。 配列名は、先頭要素を指すポインタのように振る舞うこと。 *(配列名 + i)というポインタ演算で、i番目の要素にアクセスできること。 ... -
C++樹林
【C++】関数へポインタを渡す方法|配列を渡すのと何が違う?
はじめに 前回の記事では、void func(int arr[])という形で、関数に配列を渡す方法を学びました。その際、「配列を渡す際、実際には配列の先頭アドレスが渡される」と解説しました。 では、もっと直接的に、void func(int* p)のように「ポインタ」を引数と... -
C++樹林
【C++】関数に配列を渡す方法(引数としての配列)を徹底解説
はじめに プログラミングでは、同じような処理を何度も書くのではなく、一つのまとまりとして「関数」に切り出すことで、コードが読みやすく、再利用しやすくなります。では、配列全体のデータを使って何か処理をしたい場合、その配列をどうやって関数に渡... -
C++樹林
【C++】ポインタ演算とは?配列とポインタでアドレスを操作する基本
はじめに 前回の記事では、「配列の名前は、配列の先頭要素を指すポインタのように振る舞う」というC++の重要な性質を学びました。では、その「ポインタのようなもの」に対して、もし足し算や引き算をしたら、一体何が起こるのでしょうか? これが、今回解... -
C++樹林
【C++】配列名はポインタ?配列とポインタの不思議な関係を優しく解説
【C++】配列名はポインタ?配列とポインタの不思議な関係を優しく解説 はじめに C++の学習で多くの人がつまずきやすいのが、「ポインタ」と「配列」です。それぞれが複雑なだけでなく、この二つは実は非常に密接な関係にあり、その関係性がさらなる混乱を... -
C++樹林
【C++入門】2次元配列とは?Excelの表のようなデータを扱う方法を解説
はじめに 前回の記事では、複数のデータを一直線に並べて管理する「配列」について学びました。では、「5人の生徒の、2つの教科(国語と数学)の点数」のように、もっと複雑なデータを管理したい場合はどうすればよいでしょうか。 このような、縦と横の広... -
C++樹林
【C++入門】配列とは?基本的な使い方を初心者向けに優しく解説
はじめに プログラミングを学び始めると、たくさんのデータを扱いたくなる場面が出てきます。例えば、「5人の生徒のテストの点数」を管理したい場合、どうしますか? int score1 = 78; int score2 = 92; int score3 = 55; int score4 = 80; int score5 = 6... -
C++樹林
C++で参照渡しを使って変数の値を交換する方法
C++には、関数の引数に参照を使用する「参照渡し(call by reference)」という機能があります。本記事では、参照を使った引数の受け渡しにより、関数内で複数の変数の値を直接変更する方法について解説いたします。 サンプルコード:参照を使った値の交換... -
C++樹林
C++における参照の基本:ポインタとの違いと仕組みを理解する
C++では、変数の別名として「参照(reference)」を使用することができます。本記事では、参照の基本的な使い方や、参照と変数の関係について、簡単なコード例とともに解説いたします。 サンプルコード:参照の使い方と挙動の確認 以下のコードは、1つの変... -
C++樹林
関数引数とポインタの違いを理解する:値渡しとポインタ渡しの実例
C++で関数を定義する際、引数の渡し方には「値渡し」と「ポインタ渡し(あるいは参照渡し)」の2つの方法があります。本記事では、それぞれの違いと、初心者が陥りやすい「関数で変数の値が変更されない」問題を、具体的なコード例を通じてわかりやすく解... -
C++樹林
C++でポインタを使って変数の値を変更する方法【間接参照による代入】
概要 C++のポインタを使うことで、別の変数のアドレスを通じて、その値を直接書き換えることが可能になります。これは「間接参照(dereference)」と呼ばれ、C++のメモリ操作において基本かつ重要な概念です。 本記事では、ポインタを用いて変数の値を変更... -
C++樹林
C++でポインタの参照先を切り替える方法【アドレスの再代入】
概要 C++のポインタは、単に変数のアドレスを保持するだけでなく、途中で別の変数のアドレスに切り替えることも可能です。この性質を利用することで、柔軟かつ効率的なメモリ操作が可能になります。 本記事では、ポインタに別のアドレスを代入することで、...