C++

 Computer >> コンピューター >  >> プログラミング >> C++
  1. C++の論理演算子(||・&&・!)の基本と使い方を徹底解説

    論理演算子の概念はとてもシンプルです。プログラムが複数の条件に基づいて判断を下せるようにするための仕組みです。各オペランドは「true または false に評価できる条件」として扱われ、その評価結果をもとに、「op1 演算子 op2」や「!op1」といった式全体の値が決まります。C++には主に3種類の論理演算子があり、それぞれ以下のような特徴を持っています。論理OR演算子(||)論理OR演算子(||)は、オペランドのどちらか一方、あるいは両方が true であればブール値 true を返し、それ以外の場合は false を返します。オペランドは評価前に暗黙的に bool 型へ変換され、結果も

  2. C++のビット演算子(AND・OR・XOR)の使い方を解説

    C++で利用できるビット演算子(ビットごとの演算を行う演算子)には主に3種類あります。ビットごとのAND演算子(&)、ビットごとのOR演算子(|)、そしてビットごとの排他的OR演算子であるXOR(^)です。これらの演算子は、データを2進数のビット列として扱い、対応するビット同士を比較することで新しい値を生成します。フラグ管理やマスク処理など、低レベルなプログラミングで頻繁に活用される重要な演算子です。ビットごとのAND演算子(&)AND演算子(&)は、第1オペランドの各ビットを、第2オペランドの対応するビットと比較します。両方のビットが1の場合のみ、結果の対応するビット

  3. C++の代入演算子とは?単純代入と複合代入の基本を解説

    C++の代入演算子とは代入演算子は、左オペランドで指定されたオブジェクトに値を格納するための演算子です。C++の代入操作には、大きく分けて次の2種類があります。単純代入:第2オペランドの値を、第1オペランドで指定されたオブジェクトにそのまま格納します。複合代入:算術演算・シフト演算・ビット演算を実行した後、その結果を格納します。単純代入演算子の例最も基本的な代入演算子「=」を使用した例を見てみましょう。#include<iostream> using namespace std; int main() { int i; i = 10; // 単純代入

  4. C++の単項演算子とは?種類・使い方を実例付きで解説

    単項演算子(unary operator)とは、1つのオペランド(被演算子)に対して作用し、新しい値を生成する演算子のことです。C++には以下のような単項演算子が用意されています。 C++の主な単項演算子一覧 演算子説明 間接参照演算子(*)ポインタ変数に作用し、そのポインタが指すアドレスにある値に相当するlvalueを返します。この操作はポインタの「デリファレンス(間接参照)」と呼ばれます。 アドレス取得演算子(&)オペランドのメモリアドレスを取得する単項演算子です。オペランドとしては、関数指定子、またはビットフィールドでなく、register記憶クラス指定子を付けずに宣言さ

  5. C++のsizeof演算子とは?基本構文と使い方を実例付きで解説

    sizeof はC++のキーワードであると同時に、コンパイル時に評価される演算子でもあります。変数やデータ型が必要とするメモリのサイズをバイト単位で取得するために使用され、プログラムの実行時ではなくコンパイルの時点でその値が確定する点が特徴です。sizeof演算子は、int や double などの組み込み型だけでなく、クラス・構造体・共用体などユーザー定義のデータ型に対しても使用できます。sizeofの基本構文sizeof (data type)「data type」の部分には、サイズを調べたいデータ型や変数名を指定します。例えば、char 型のオブジェクトに適用した場合は必ず 1 を返しま

  6. C++の三項演算子(条件演算子 ? :)とは?基本の仕組みと使い方を解説

    三項演算子(条件演算子 ? :)とは C++における条件演算子(? :)は、3つのオペランド(被演算子)を受け取ることから「三項演算子」と呼ばれています。簡単な条件分岐をif文を使わずに1行で記述できるため、コードを簡潔にしたい場面でよく使われる演算子です。 条件演算子の動作の流れ 条件演算子は次のような手順で動作します。 第1オペランドは暗黙的にbool型へ変換されます。評価が行われ、すべての副作用が完了してから処理が続行されます。 第1オペランドがtrue(1)と評価された場合、第2オペランドが評価されます。 第1オペランドがfalse(0)と評価された場合、第3オペランドが評価されま

  7. C++のカンマ演算子とは?仕組みと使い方を実例付きで解説

    カンマ演算子とはC++におけるカンマ演算子(コンマ演算子)は、複数の式をひと続きにつなげて記述するための演算子です。カンマで区切られた式の並び全体の値は、最も右側にある式の値になります。つまり、左から順に各式が評価・実行されていき、それ以外の式の値はすべて破棄されます。カンマ演算子の本質的な役割は、「一連の操作を順番に実行させること」と言えます。サンプルコード次のプログラムは、カンマ演算子の動作を示したものです。#include <iostream>using namespace std;int main() {    int i, j;&n

  8. C++のドット演算子(.)とは?矢印演算子との違いと使い分けを解説

    C++では、クラスのメンバーにアクセスするために「ドット演算子(.)」と「矢印演算子(->)」の2種類が用意されています。どちらも同じ目的で使われますが、使用する場面が異なります。C++において、class・struct・unionとして宣言された型はすべて「クラス型」とみなされます。以下では、これらに対する両演算子の使い方を説明します。ドット演算子(a.b)a.b は、b がオブジェクト a(またはオブジェクトへの参照[1])のメンバーである場合にのみ使用できます。つまり、a.b の形式では、a は必ずクラス型の実際のオブジェクト(またはその参照)である必要があります。矢印演算子(a-

  9. C++のアロー演算子(矢印演算子)とは?ドット演算子との違いをわかりやすく解説

    C++には、クラスのメンバーにアクセスするための演算子として「ドット演算子(.)」と「アロー演算子(->)」の2種類があります。どちらも同じ目的で使われますが、使用する場面が異なります。C++では、class、struct、unionとして宣言された型はすべて「クラスタイプ」とみなされます。以下の説明は、これらすべてに共通して当てはまります。ドット演算子とアロー演算子の基本的な違いa.b は、b がオブジェクトa(またはオブジェクトへの参照)のメンバーである場合にのみ使用できます。つまり、a.b の形式では、a は必ず実際のオブジェクト(またはオブジェクトへの参照)になります。a->

  10. C++のキャスト演算子とは?4種類のキャストの違いと使い方を解説

    キャスト演算子とは キャスト(cast)とは、あるデータ型を強制的に別のデータ型へ変換するための特殊な演算子です。キャストは単項演算子の一種であり、他の単項演算子と同じ優先順位を持ちます。 多くのC++コンパイラがサポートしている、最も一般的なキャストの構文は次のとおりです。 (type) expression ここで「type」は変換後の目的のデータ型を表します。C++では、このCスタイルのキャストに加えて、目的別に設計された次の4つのキャスト演算子が用意されています。 C++の4つのキャスト演算子 const_cast<type>(expr) − キャスト時にconstやvo

  11. C++のポインタ演算子とは?アドレス演算子(&)と間接参照演算子(*)をわかりやすく解説

    C++には、ポインタを操作するための2つの専用演算子が用意されています。それが「アドレス演算子(&)」と「間接参照演算子(*)」です。まず、ポインタとは何かをおさらいしましょう。ポインタとは、別の変数のメモリアドレスを格納するための変数のことです。「ある変数のアドレスを持つ変数」は、その変数を「指し示している(ポイントしている)」と表現されます。ポインタが指し示す対象は、intやdoubleのような基本データ型だけでなく、オブジェクト、構造体、さらには別のポインタ自身であってもかまいません。アドレス演算子(&)とはアドレス演算子「&」は、間接参照演算子「*」の補完的な役

  12. C++のポインタ演算子*とは?間接参照演算子の基礎と使い方を解説

    C++の2つのポインタ演算子C++には、ポインタを操作するための演算子として、アドレス演算子(&)と間接参照演算子(*)の2つが用意されています。ポインタとは、別の変数のアドレス(メモリ上の場所)を格納する変数のことです。つまり、他の変数のアドレスを保持している変数は、その変数を「指し示している(ポイントしている)」と表現されます。ポインタが指し示す対象は、オブジェクトや構造体、さらにはポインタ自身を含む、あらゆるデータ型が可能です。間接参照演算子(*)とは間接参照演算子(*)は、アドレス演算子(&)と対になる演算子です。単項演算子の一種で、オペランドに指定されたアドレスに格納

  13. C++の演算子の優先順位と結合規則を徹底解説【一覧表付き】

    演算子の優先順位とはC++における演算子の優先順位(operator precedence)は、式の中で各項(オペランド)がどのようにグループ化されるかを決める重要なルールです。また、結合規則(associativity)とは、括弧がない場合に同じ優先順位を持つ演算子がどちらの方向から評価されるかを決める特性のことを指します。これらは式の評価結果に直接影響を与えます。演算子によって優先順位には差があり、一部の演算子は他の演算子よりも先に評価されます。たとえば、乗算演算子(*)は加算演算子(+)よりも高い優先順位を持っています。具体例:x = 7 + 3 * 2 の評価x = 7 + 3 * 2

  14. 【完全ガイド】C++標準ライブラリのヘッダーファイル一覧|カテゴリ別に解説

    C++標準ライブラリは、目的別に分類された多数のライブラリで構成されています。本記事では、それぞれのカテゴリごとに含まれるヘッダーファイルとその役割を一覧形式でわかりやすく解説します。C++11・C++17・C++20で新たに追加されたヘッダーについても併せて確認できます。ユーティリティライブラリ(Utilities library)<cstdlib> − プログラムの制御、動的メモリ確保、乱数生成、ソートや検索など、汎用的なユーティリティを提供します。<csignal> − シグナル管理のための関数およびマクロ定数(SIGINT など)を提供します。<csetj

  15. C++の標準出力ストリーム(std::cout)とは?基本と使い方を解説

    std::coutとは std::coutは、char型などのナロー文字(半角文字)向けの標準出力ストリームを表す、ostreamクラスのオブジェクトです。C言語の標準出力であるstdoutに対応しており、C++における最も基本的な出力手段となります。 標準出力ストリームとは、実行環境によって決定されるデフォルトの文字出力先のことです。この出力先は、エラー出力用のcerrやログ出力用のclogなど、他の標準オブジェクトと共有される場合もあります。 std::coutの特徴 ostreamクラスのオブジェクトであるstd::coutには、主に次の2つの方法で文字を出力できます。 整形済みデー

  16. C++の「長い矢印」演算子(--->)とは? その正体と仕組みを実装例付きで解説

    C++に「長い矢印」演算子は存在しない結論から言うと、C++に ---> のような「長い矢印」演算子は存在しません。しかし、一見するとそのような演算子が動いているように見えるコードを書くことは可能です。そのカラクリを理解するには、まず「ラッパー型」という存在を知っておく必要があります。ラッパー型と operator-> の役割C++では、値を包み込むためのラッパー型を作ることがよくあります。std::unique_ptr、std::shared_ptr、std::optional などがその代表例です。これらの型は通常、中身の値へのアクセサとして .get() というメンバ関数を持

  17. 【C++入門】標準入力ストリーム(std::cin)の使い方をわかりやすく解説

    std::cinは、char型などのナロー文字(半角文字)を扱う標準入力ストリームを表す、istreamクラスのオブジェクトです。C言語のstdinストリームに相当するものです。標準入力ストリームとは、実行環境によって決定される文字の入力元を指し、一般的にはキーボードやファイルなど、外部ソースからの入力であるとみなされます。 std::cinはistreamクラスのオブジェクトであるため、抽出演算子(operator>>)を使って書式化されたデータとして文字を読み取ることもできますし、readなどのメンバー関数を使って書式化されていない生データとして読み取ることも可能です。なお、こ

  18. C++の標準エラーストリーム(std::cerr)とは?基本と使い方を解説

    std::cerr とは何かstd::cerr は、ostream クラスのオブジェクトであり、char 型などのナロー文字(マルチバイト文字)を扱う「標準エラーストリーム」を表します。C言語の stderr ストリームに対応するもので、エラーメッセージや診断情報の出力先として使用されます。標準エラーストリームの出力先は、プログラムを実行する環境によって決定されます。多くの場合はコンソール(画面)に接続されていますが、リダイレクト設定などにより変更されることもあります。なお、この出力先は std::cout や std::clog といった他の標準ストリームオブジェクトと共有される場合がありま

  19. C++における演算子オーバーロードの基本ルールとイディオムとは?

    C++における演算子オーバーロードの3つの基本ルール C++で演算子をオーバーロードする際には、守るべき3つの基本ルールがあります。あらゆるルールに例外が存在するように、これらにも例外はありますが、まずは以下の原則を押さえておきましょう。 ルール1:意味が明確でない演算子はオーバーロードしない 演算子の意味が明白で、誰もが異論なく受け入れられる場合以外は、オーバーロードすべきではありません。その代わりに、適切な名前を持つ関数を提供しましょう。この最初にして最も重要なルールの核心は、一言でいえば次の通りです。 「やめておけ」 これは意外に聞こえるかもしれませんが、演算子オーバーロードが適切なケ

  20. C++におけるドット演算子(.)とアロー演算子(->)の違いを徹底解説

    C++では、ドット演算子(.)とアロー演算子(->)はどちらもクラスのメンバーにアクセスするために使用されますが、それぞれ使用される場面が異なります。C++において、class、struct、unionとして宣言された型はすべて「クラスタイプ」とみなされるため、以下の説明はこれら3つすべてに当てはまります。基本的な使い分けa.b は、b がオブジェクト a(またはオブジェクトへの参照[1])のメンバーである場合にのみ使用できます。つまり、a.b の形式では、a は常にクラスの実際のオブジェクト(またはその参照)でなければなりません。a->b は、本質的に (*a).b の省略記法で

Total 5990 -コンピューター  FirstPage PreviousPage NextPage LastPage CurrentPage:5/300  20-コンピューター/Page Goto:1 2 3 4 5 6 7 8 9 10 11