C++樹林– category –
-
C++樹林
C++のループ制御:break、continue、goto文の役割と注意点
for文やwhile文などの繰り返し処理では、ループの実行フローをより細かく制御したい場面があります。C++には、そのような要求に応えるための3つの文、break、continue、gotoが用意されています。 break文:ループを完全に中断する break文は、switch文だけ... -
C++樹林
C++の多重ループ(ネストループ)解説:二重ループの基本と使い方
多重ループ(ネストループ)とは? 「多重ループ(ネストループ)」とは、繰り返し処理(for文やwhile文など)の内部で、さらに別の繰り返し処理を行う構造のことです。 ループが二重になっている場合を「二重ループ」、三重になっている場合を「三重ルー... -
C++樹林
C++のfor文解説:基本構文と変数のスコープ(繰り返し処理)
for文とは? for文は、C++における「繰り返し文(イテレーション文)」の一つです。while文やdo-while文と同様にループ処理を行いますが、特に**「決まった回数」や「特定の範囲」を反復する処理**を記述するのに適しています。 for文の最大の特徴は、ルー... -
C++樹林
Arduinoで障害物回避!超音波センサー(HC-SR04)とサーボで滑らかな自動操舵システムを作る
Arduino(アルディーノ)を使った電子工作の醍醐味の一つに、「自動制御」があります。今回は、安価で入手しやすい「超音波距離センサー(HC-SR04)」と「サーボモーター(GeekServo 9Gなど)」を使い、障害物を検知して自動で舵を切る(操舵する)システ... -
C++樹林
Arduinoサーボ制御から応用へ!DCモーターと超音波センサー(HC-SR04)で追従システムを作る方法
Arduinoを使った電子工作は、アイデア次第で様々なものを生み出せる魅力的な趣味です。サーボモーターでアームを動かしたり、LEDを点滅させたりすることから始める方も多いのではないでしょうか。 本記事では、サーボモーターの基本的な制御から一歩進んで... -
C++樹林
ArduinoでOLED(NFP1315-61AY)が表示されない? ライブラリの間違いと解決策
Arduino(アルディーノ)を使って電子工作をしていると、センサーやディスプレイなど、さまざまな部品を扱います。特に、小型で高精細な「OLED(有機EL)ディスプレイ」は、プロジェクトの結果を表示させるのに非常に人気があります。 しかし、いざOLEDデ... -
C++樹林
C++のwhile文ガイド:条件が成立する間の繰り返し(前判定ループ)
while文とは?(前判定ループ) C++には複数の繰り返し(ループ)構文がありますが、while文はその中でも最も基本的なものの一つです。 while文は、ループ本体の処理を実行する「前」に条件式を評価します。この条件式がtrueである間、ループ本体の処理を... -
C++樹林
C++のdo-while文:基本と使い方(最低1回は実行したいループ処理)
do-while文とは? C++における「ループ(繰り返し)処理」を実現する構文の一つがdo-while文です。 while文と非常によく似ていますが、決定的な違いが一つあります。それは、ループ本体(繰り返したい処理)を最低1回は必ず実行し、その後に条件判定を行う... -
C++樹林
C++のswitch文:基本構文とbreak、defaultの使い方を解説
switch文とは? switch文は、C++における条件分岐構文の一つです。特定の式(変数など)の値を評価し、その値が一致するcaseラベルへ処理をジャンプさせます。 多くのif-else ifが連なるような条件分岐、特に「一つの変数が特定の値であるか」を順に比較す... -
C++樹林
C++入門:if文による条件分岐を完全マスター!比較・論理演算子も解説
はじめに:プログラムに「判断力」を持たせる これまでのプログラムは、上から下へ決められた命令を順番に実行するだけでした。しかし、より実用的なプログラムを作るには、「もし○○だったらAを実行し、そうでなければBを実行する」というように、状況に応... -
C++樹林
C++入門:cinでキーボード入力を受け取る方法と基本演算を完全解説
はじめに:ユーザーと対話するプログラムへ これまでのプログラムは、あらかじめ決められた処理を実行し、結果を表示するだけの一方的なものでした。しかし、ユーザーがキーボードから入力した値によってプログラムの動作が変わるようになれば、電卓やゲー... -
C++樹林
C++入門:変数の使い方をマスター!宣言・代入・初期化の基本を解説
はじめに:なぜ「変数」が必要なのか? C++では、coutという機能を使って、画面に文字や計算結果を表示することができます。例えば、以下のように書けば25 + 75の計算結果を表示できます。 // このコードを実行するには #include <iostream> と usin... -
C++樹林
【C++入門】すべての基本!ヘッダーとインクルード、名前空間std、coutでの画面出力を徹底解説
はじめに:C++プログラムの構成要素 プログラムのコードを見ると、最初に出てくる#include <iostream>やusing namespace std;といったおまじないのような記述に戸惑っていませんか? この記事では、C++プログラミングの第一歩として、以下の3つの基本的... -
C++樹林
【C++】データ型の種類を徹底解説(基本型からポインタ、構造体まで)
はじめに C++プログラミングの根幹をなすのが「型」の概念です。全ての変数やオブジェクトは、必ず何らかの型を持ち、その型によって、どのような値を保持できるか、どのような操作が可能かが決まります。 この記事では、C++の型システムを構成する主要な... -
C++樹林
【C++】constとvolatileの使い分け | cv修飾子を徹底解説
はじめに C++で変数を宣言する際、int x; のように型を指定するだけでなく、const や volatile といった修飾子を付け加えることができます。これらは、その変数がどのように扱われるべきかをコンパイラとプログラマに伝えるための重要なキーワードです。 c... -
C++樹林
【C++】型の別名を付けるtypedefとusingの違いと使い方
はじめに C++で、unsigned long long や関数ポインタ void (*)(int) のように、型名が長くて複雑になることがあります。このような型を何度も記述するのは、コードを読みにくくし、typoの原因にもなります。 この問題を解決するのが「型の別名宣言(タイプ... -
C++樹林
【C++】autoとdecltype | 型の自動推論と取得の方法を解説
はじめに C++で、std::vector<std::string>::iterator のように、非常に長くて複雑な型名を手で書くのは、面倒で、typoの原因にもなります。 C++11では、このような問題を解決し、コードをより簡潔で読みやすくするために、型の自動推論の仕組みが導... -
C++樹林
【C++17】構造化束縛の使い方 | pair, tuple, structを分解して受け取る方法
はじめに C++で、std::pairやstd::tupleを返す関数を扱う際、従来はその戻り値を一度変数に受け取り、.firstやget<0>を使って個々の要素にアクセスする必要があり、少し冗長でした。 C++17で導入された構造化束縛は、この問題をエレガントに解決しま... -
C++樹林
【C++】4種類のキャストを徹底解説 (static_cast, dynamic_cast 等)
はじめに C++には、intからdoubleへ、あるいは親クラスのポインタから子クラスのポインタへ、といった**明示的な型変換(キャスト)**を行うための、4つの異なるキャスト演算子が用意されています。これらは、古いC言語スタイルのキャスト (type)value よ... -
C++樹林
【C++】newとdeleteによる動的なメモリ確保・解放を徹底解説
はじめに C++では、通常の変数は宣言されたスコープを抜けると自動的に破棄されます。しかし、プログラムの実行時まで必要なサイズが分からない配列や、関数のスコープを超えて存在し続けるオブジェクトを扱いたい場合、ヒープと呼ばれる特別なメモリ領域... -
C++樹林
【C++】sizeof, alignof等 | 型のサイズとアライメントを扱う方法
はじめに C++でパフォーマンスを意識したプログラミングや、ハードウェアに近い低レベルなデータ操作を行う際、オブジェクトがメモリ上で「どれくらいの領域を占めるか(サイズ)」や、「どのようなアドレスに配置されるべきか(アライメント)」を正確に... -
C++樹林
【C++】右辺値参照とムーブセマンティクス入門 | 不要なコピーをなくし高速化
はじめに C++で、大量のデータを格納したvectorやstringを関数から返したり、別の変数に代入したりすると、内部のデータが全てコピーされ、大きなパフォーマンス上のオーバーヘッドが発生していました。 例えば、巨大なデータが入ったvectorを返す関数があ... -
C++樹林
【C++】リテラルとは?数値、文字、文字列などの定数の書き方を徹底解説
はじめに C++でプログラムを書く際、私たちは様々な「値」を直接コードに記述します。これらの、ソースコード上に直接表現される固定値のことをリテラルと呼びます。 C++には、扱うデータの種類に応じて、様々なリテラルの記述方法が用意されています。こ... -
C++樹林
【C++】文とは?if, for, whileなど主要な制御文をまとめて解説
はじめに C++のプログラムは、セミコロン(;)で終わる文(statement)を上から下へ順番に実行していくことで成り立っています。C++には、単純な計算を行う文から、条件によって処理の流れを変える(制御する)ための制御文まで、様々な種類の文があります... -
C++樹林
【C++】スコープとは?グローバル、名前空間、ローカルスコープの違いを解説
はじめに C++で変数を宣言する際、その「宣言された場所」によって、その変数がプログラムのどこから見えるかが決まります。この「名前が見える範囲」のことをスコープと呼びます。 スコープを正しく理解することは、意図しない変数の上書きを防ぎ、プログ... -
C++樹林
【C++】関数の基本 | 宣言・定義から戻り値の推論までを解説
はじめに C++プログラミングの中心となるのが「関数」です。関数は、関連する一連の処理を一つの単位としてまとめたものであり、プログラムを構造化し、コードの再利用性を高めるために不可欠です。 この記事では、C++の関数の基本を、以下のトピックに沿... -
C++樹林
【C++】クラス (class) とは?オブジェクト指向の重要概念を解説
はじめに C++におけるクラス (class) は、オブジェクト指向プログラミング(OOP)を実現するための中心的な機能です。クラスは、関連する**データ(状態)と操作(振る舞い)**を一つのまとまりとして定義した、オブジェクトの「設計図」として機能します... -
C++樹林
【C++】クラスメンバ徹底解説(変数・関数・型・アクセス制御)
はじめに C++のクラスは、オブジェクトの「設計図」です。この設計図は、メンバと呼ばれる様々な要素から構成されます。メンバを大きく分類すると、データを保持するための「メンバ変数」、操作を定義する「メンバ関数」、そしてクラス固有の型を定義する... -
C++樹林
【C++】クラスのメンバ変数 | データの種類とアクセス制御を徹底解説
はじめに C++のクラスは、オブジェクトの状態を表すデータを保持します。このクラス内で宣言された変数のことを「メンバ変数」または「データメンバ」と呼びます。メンバ変数には、オブジェクトごとに存在する通常の変数、クラス全体で共有される静的変数... -
C++樹林
【C++】継承のすべて | 仮想関数から抽象クラス、多重継承までを徹底解説
はじめに C++の**継承 (Inheritance)**は、オブジェクト指向の三本柱の一つであり、コードの再利用性を高め、拡張性の高い階層構造を構築するための強力な機能です。 この記事では、C++の継承にまつわる以下の主要な概念を、RPGのキャラクターを例に、網羅...