-
C++ STLのatanh()関数とは?逆双曲線正接の計算方法を解説
atanh()関数は、引数として与えられた値の逆双曲線正接(アークハイパボリックタンジェント)を返す数学関数です。C++の標準テンプレートライブラリ(STL)に組み込まれており、<cmath>ヘッダーをインクルードすることで利用できます。atanh()関数の構文は以下のとおりです。atanh(var)構文からわかるように、atanh()関数はfloat型、double型、またはlong double型のパラメータvarを受け取ります。このパラメータには-1以上1以下の値を指定する必要があります。戻り値として、varの逆双曲線正接が返されます。なお、引数が-1未満または1より大きい場
-
C++ STLのtanh()関数とは?基本構文とサンプルコードを徹底解説
tanh()関数とはtanh()関数は、ラジアン単位で指定された角度の双曲線正接(ハイパボリックタンジェント)を返すC++ STLの組み込み関数です。使用する際は、<cmath>ヘッダーをインクルードします。構文tanh(var)構文から分かるように、tanh()関数はfloat型・double型・long double型のいずれかの値を持つ引数varを1つ受け取り、その双曲線正接を返します。基本的な使用例以下は、C++でtanh()関数を使用するプログラムの例です。#include <iostream> #include <cmath> using nam
-
C++ STLのacosh()関数の使い方を徹底解説
C++ STLのacosh()関数とはacosh()関数は、引数として与えられた値の逆双曲線余弦(アークハイパボリックコサイン)を返す関数です。C++の標準テンプレートライブラリ(STL)に組み込まれており、<cmath>ヘッダをインクルードすることで利用できます。acosh()関数の構文acosh(var)構文からわかるように、acosh()関数はfloat型、double型、long double型のいずれかのパラメータvarを受け取ります。このパラメータには1以上の値を指定する必要があります。関数はvarの逆双曲線余弦を返します。acosh()関数の基本的な使用例以下に、C+
-
C++ STLのasinh()関数とは?使い方とサンプルコードを解説
asinh()関数とはasinh()関数は、ラジアンで指定された角度に対する逆双曲線正弦(アークハイパボリックサイン)を返す関数です。C++ STLに標準で組み込まれており、<cmath>ヘッダーをインクルードすることで利用できます。構文asinh(var)上記の構文が示すように、asinh()関数はfloat型、double型、またはlong double型の引数varを1つ受け取ります。この引数には、負の値・正の値・0のいずれも指定可能です。関数はvarの逆双曲線正弦を返します。asinh()関数の基本的な使用例以下のプログラムは、C++でのasinh()関数の使用方法を示した
-
C++の配列減衰(Array Decay)とは?原因と防止方法を解説
配列減衰(Array Decay)とは配列の型やサイズ(次元)の情報が失われる現象は、「配列減衰(array decay)」と呼ばれます。この現象は、配列を関数へポインタや値として渡したときに発生します。その際に関数へ渡されるのは配列の先頭アドレス、つまりポインタであるため、関数側では元の配列サイズを知ることができません。ここでは、C++における配列減衰の具体例を見てみましょう。サンプルコード#include<iostream> using namespace std; void DisplayValue(int *p) { cout << 値渡しした場合の配
-
C++のswap()関数とは?2つの変数の値を入れ替える方法をサンプルコード付きで解説
swap()関数とは C++のswap()関数は、2つの値を入れ替える(交換する)ための関数です。この関数を利用すれば、一時的な第三の変数を自分で用意することなく、2つの変数の値を簡単に入れ替えることができます。 swap()関数の構文 void swap(int variable_name1, int variable_name2); 変数に値を代入してswap()関数に渡した場合、関数内では値の入れ替えが行われますが、呼び出し元の実際の変数の値は変わりません。これは、引数が「値渡し」で渡されるためです。実際の変数の値を入れ替えたい場合は、後述する「参照渡し」を使用します。 例1:s
-
C++のCHAR_BITとは?意味と使い方を解説
CHAR_BITは、char型が持つビット数を表すマクロです。C++では「limits.h」ヘッダーファイル(C++では<climits>)で宣言されており、一般的な環境では1バイトが8ビットであることを示します。このマクロを利用することで、移植性の高いコードを書くことができます。環境に依存せずにchar型のビット数を取得できるため、ビット演算やデータサイズの計算に役立ちます。CHAR_BITの使用例以下は、C++でCHAR_BITを使用したサンプルコードです。CHAR_BITとsizeofを組み合わせてint型の全ビット数を求め、整数値を2進数形式で出力しています。#includ
-
C++のnew/delete演算子を解説!動的メモリ確保と解放の基本
new演算子とは new演算子は、ヒープ領域に対してメモリの割り当てを要求します。十分な空きメモリが存在する場合、確保したメモリをポインタ変数に結び付け、そのアドレスを返します。 基本構文 pointer_variable = new datatype; 初期値を指定して確保する構文 メモリ確保と同時に初期値を設定することも可能です。 pointer_variable = new datatype(value); メモリブロック(配列)を確保する構文 pointer_variable = new datatype[size]; new演算子のサンプルコード 次の例では、単一の変数用のメモリ、
-
C++のceil関数とfloor関数の使い方をわかりやすく解説
ceil関数とは ceil関数は、引数に渡した値以上となる整数のうち、最も小さい値(切り上げた値)を返す関数です。C++では「cmath」ヘッダーファイル内で宣言されており、引数には天井値を求めたい単一の値を指定します。なお、引数のデータ型はdouble型・float型・long double型のいずれかである必要があります。 C++におけるceil関数の構文は以下のとおりです。 double ceil(double x); float ceil(float x); それでは、ceil関数を使用した具体的なサンプルコードを見ていきましょう。 サンプルコード #include <iost
-
C++のconstメンバー関数とは?基本から使い方まで解説
C++におけるconstメンバー関数とは、クラス内でconstキーワードを付けて宣言されたメンバー関数のことです。この種の関数は、呼び出し元のオブジェクトの状態(メンバー変数)を一切変更できません。オブジェクトに対する意図しない変更やバグを防ぐために、値を返すだけのゲッター関数などには積極的にconstを付けることが推奨されています。constメンバー関数の重要なルールconstメンバー関数:constオブジェクト・非constオブジェクトのどちらからでも呼び出せます。非constメンバー関数:非constオブジェクトからのみ呼び出せます。constオブジェクトからは呼び出せません。構文戻り値
-
C++のクラスとオブジェクトとは?基本概念と定義方法を初心者向けに解説
クラスは、C++における最も重要な機能の一つです。オブジェクト指向プログラミング(OOP)の中核となる概念を実現するためのユーザー定義型であり、データ変数と、そのデータを操作するための関数を1つのパッケージにまとめることができます。クラスは、オブジェクトの設計図(仕様)を提供する役割を担います。クラスの定義方法クラスの定義は「class」キーワードから始まり、その後にクラス名を記述します。続いて、波括弧({})で囲まれたクラス本体を定義し、末尾に必ずセミコロン(;)を付けます。C++におけるクラス定義の基本的な例は以下の通りです。class Student { &nbs
-
【C++入門】抽象化(Abstraction)の基本とクラスを使った実装方法
抽象化(Abstraction)とは抽象化とは、外部に対しては必要な情報だけを提供し、背後にある複雑な処理や詳細な実装は隠すという考え方です。プログラミングにおいては、「インターフェースと実装の分離」という原則に基づいて設計を行います。C++における抽象化の実現方法C++ではクラスを使うことで抽象化を実現できます。クラスは、外部からデータを操作するためのpublicメソッドを提供し、それ以外のメンバ変数や内部構造はprivateとして隠蔽します。これにより、利用者はクラスの内部がどのように実装されているかを知らなくても、公開されたメソッドを通じて必要な機能を自由に利用できるようになります。サン
-
C++におけるカプセル化の基本と実装方法
カプセル化(Encapsulation)とは、データとそのデータを操作するメソッドを1つのコンポーネントにまとめ、外部からの干渉から保護するオブジェクト指向プログラミングの重要な概念です。カプセル化を実現することで、「データ隠蔽(Data Hiding)」という非常に重要な概念が生まれます。C++では、ユーザー定義型であるクラスを使用してカプセル化を実現します。クラスは、データメンバとそれらを操作するメンバ関数をひとまとめにしたものです。以下に、C++のクラスを使ってカプセル化を表現するサンプルプログラムを示します。実装例#include <iostream> using name
-
C++のローカルクラスとは?特徴・制約と実装例をわかりやすく解説
ローカルクラスとは C++において、関数の中で宣言されたクラスは「ローカルクラス」と呼ばれます。これは、そのクラスが定義された関数の内部でのみ有効であるためです。 まず、ローカルクラスの基本的な構造を見てみましょう。 #include<iostream> using namespace std; void func() { class LocalClass { }; } int main() { return 0; } 上記の例では、関数 func() の中で LocalClass が定義されています。このように関数の内部で宣言されたクラスが、ローカルクラス
-
【C++入門】ネストされたクラス(入れ子クラス)の定義方法と使い方
ネストされたクラスとはネストされたクラス(入れ子クラス)とは、別のクラスの内部で宣言されたクラスのことです。ネストされたクラスは、それを囲む外側のクラスのメンバーの一つとして扱われ、他のメンバーと同じアクセス権限を持ちます。ただし注意点として、外側のクラスのメンバー関数が、ネストされたクラスのメンバーに対して特別なアクセス権を持つことはありません。つまり、外側のクラスだからといって、ネストされたクラスのprivateメンバーに自由にアクセスできるわけではありません。以下に、C++におけるネストされたクラスの基本的な使用例を示します。サンプルプログラム#include<iostream&g
-
C++のコンストラクタとは?デフォルトコンストラクタと引数付きコンストラクタの使い方を解説
C++のコンストラクタとはコンストラクタ(constructor)とは、クラスの新しいオブジェクトが生成される瞬間に自動的に呼び出される特別なメンバ関数です。コンストラクタには以下のような特徴があります。関数名がクラス名と同じである戻り値の型を持たない(voidも指定しない)オブジェクト生成時に自動的に実行されるコンストラクタの主な役割は、クラスのメンバ変数に初期値を与えることです。これにより、オブジェクトは生成された時点で適切な状態を持つことが保証されます。C++のコンストラクタには、主に「デフォルトコンストラクタ」と「引数付きコンストラクタ(パラメータ化コンストラクタ)」の2種類があります
-
C++のコピーコンストラクタとは?仕組みと実装方法をサンプルコード付きで解説
コピーコンストラクタは、コンストラクタの一種です。同じクラスのオブジェクトを受け取り、その値を使って新しいオブジェクトを生成・初期化します。もしクラス内でコピーコンストラクタが定義されていない場合、コンパイラが自動的にデフォルトのコピーコンストラクタを生成します。ただし、ポインタ変数や動的メモリ確保(new/delete)を持つクラスでは、デフォルトのコピーは浅いコピー(shallow copy)となり、同じメモリ領域を複数のオブジェクトが参照してしまう問題が発生します。そのため、このようなクラスでは独自のコピーコンストラクタを定義することが必須となります。コピーコンストラクタのサンプルプログ
-
C++のデストラクタとは?基本構文と使い方を実例で解説
デストラクタ(Destructor)は、C++のクラスに属する特別なメンバ関数の一つで、オブジェクトを破棄する役割を担います。関数の終了やプログラムの終了、deleteによる明示的な削除など、オブジェクトがスコープ外に出るタイミングで自動的に呼び出されます。 デストラクタは通常のメンバ関数とは異なり、引数を受け取らず、戻り値も返しません。また、クラス名と同じ名前を持ち、その先頭にはチルダ(~)を付けるのが決まりです。なお、デストラクタはオーバーロードできないため、1つのクラスに定義できるのは1つだけという点にも注意しましょう。 以下に、C++におけるデストラクタの動作を確認できるサンプルプログ
-
C++のデフォルトコンストラクタとは?基本からサンプルコードまで解説
コンストラクタとはコンストラクタは、クラスの新しいオブジェクトが生成される際に自動的に実行される特殊なメンバ関数です。クラス名と同じ名前を持ち、戻り値の型を持ちません(voidも指定できません)。主な役割は、クラスのメンバ変数に初期値を設定することです。コンストラクタには大きく分けて「デフォルトコンストラクタ」と「引数付きコンストラクタ」の2種類があります。デフォルトコンストラクタの特徴デフォルトコンストラクタは、引数を一切取らないコンストラクタです。プログラマが明示的にデフォルトコンストラクタを定義しなかった場合、コンパイラが暗黙的にデフォルトコンストラクタを自動生成します。ただし、暗黙的に
-
C++のアクセス修飾子とは?public・private・protectedの違いと使い方を実例で解説
アクセス修飾子(Access Modifier)は、オブジェクト指向プログラミングにおける「データ隠蔽(カプセル化)」を実現するための重要な仕組みです。クラスの外部からメンバ変数やメンバ関数への不正なアクセスを防ぎ、プログラムの安全性と保守性を高めます。C++には主に次の3種類のアクセス修飾子が用意されています。public:どこからでもアクセス可能private:同じクラス内(およびフレンド)からのみアクセス可能protected:クラス内と派生クラスからアクセス可能以下、それぞれの特徴と具体的なコード例を見ていきましょう。1. publicアクセス修飾子publicとして宣言されたメンバ変