su_myat_phyu

大学でコンピューターサイエンスを学びました。現在、プログラマーとして働いています。得ら…

su_myat_phyu

大学でコンピューターサイエンスを学びました。現在、プログラマーとして働いています。得られた知識を皆様と共有したく記事を書いています。これからもよろしくお願いします。

マガジン

  • CRE-COエンジニアの技術OUTPUT

    • 46本

    弊社では、インプットも大事だけけどアウトプットも大事!といった方針のもと、所属のエンジニアさん達にご自身が学んだ技術を記事にしてもらう活動をしております。様々な技術を持ったエンジニアが所属する弊社だからこその多種多様な情報をご覧ください。

記事一覧

顔、目、口を認識するためのOpenCVの使用法 - C++での実装

本記事では、OpenCVのHaar Cascadeを使用して画像中の顔と目を検出する方法について説明します。まず、Haar Cascadeについて簡単に紹介します。 Haar Cascadeの紹介 Haar …

su_myat_phyu
6日前
2

なぜC++開発者はデバッグモードとリリースモードの両方の実行ファイルを作成するのか???

はじめに ソフトウェア開発の世界では、特にC++のような言語を使う場合、異なるビルド構成を管理することが重要です。これにより、アプリケーションの品質と性能の両方を…

su_myat_phyu
6日前
3

具体的なC++でのOpenCVの使用: マイアプローチ (1)

OpenCV(オープンソース・コンピュータビジョンライブラリ)は、さまざまなコンピュータビジョンや機械学習のタスクに使用される強力なツールです。私は、C++でOpenCVを利…

su_myat_phyu
7日前
2

C++コードとコンパイラ

コンパイラとは? コンパイラの概要と種類 コンパイラは、高水準プログラミング言語で書かれたソースコードを、コンピュータのプロセッサが実行できる機械語に翻訳するプ…

su_myat_phyu
8日前
2

CMakeとVisual Studio Code:C++開発のための強力なコンビ

CMakeは、プラットフォームやコンパイラに依存しない方法でビルドプロセスを管理する広く使用されているビルドシステムです。特にC++プロジェクトにおいて、多くの魅力的な…

su_myat_phyu
2週間前
1

CMakeLists.txtファイルの作成方法

CMakeLists.txt ファイルは、CMake を使用して C++ プロジェクトをどのように構築および管理するかを定義する特定の形式に従います。CMakeLists.txtファイルには、CMake が…

su_myat_phyu
2週間前
1

C++におけるオブジェクト指向プログラミング Part VII

コンストラクタとは? コンストラクタは、クラスのオブジェクトが作成されるときに自動的に呼び出される特別なクラス関数です。主にオブジェクトの初期化に使用されます。 …

su_myat_phyu
4か月前
2

C++におけるオブジェクト指向プログラミング Part VI

ポリモーフィズム (Polymorphism) とは何か? ポリモーフィズムとは、「多くの形」という意味のギリシャ語からきており、一つの関数が異なるデータタイプに対して異なる方…

su_myat_phyu
4か月前
3

C++におけるオブジェクト指向プログラミング Part V

継承 (Inheritance) とは何か? 継承は、新しいクラス(派生クラス)が既存のクラス(基底クラス)から属性やメソッドを受け継ぐOOPの機能です。この関係により、派生クラ…

su_myat_phyu
4か月前
2

C++におけるオブジェクト指向プログラミング Part IV

抽象化(Abstraction)とは何か? OOPにおける抽象化は、複雑な現実を隠蔽し、必要な部分のみを公開するプロセスです。オブジェクトが何をするかに焦点を当て、どのようにそ…

su_myat_phyu
4か月前
3

C++におけるオブジェクト指向プログラミング Part III

カプセル化 (Encapsulation) とは何か? カプセル化とは、データ(属性)とそれに作用するメソッド(関数)を一つの単位、つまりクラスにまとめること、およびオブジェクト…

su_myat_phyu
4か月前
2

C++におけるオブジェクト指向プログラミング Part II

クラスとは何か? C++でのクラスはオブジェクトを作成するための設計図(blueprint)です。データと関数を一つの単位にまとめることで、データ型を定義します。 クラスの定…

su_myat_phyu
4か月前
2

C++におけるオブジェクト指向プログラミング Part I

オブジェクト指向プログラミングとは? オブジェクト指向プログラミングは、アクションよりもオブジェクトを中心に、ロジックよりもデータを中心に据えたプログラミングの…

su_myat_phyu
4か月前
1

ソフトウェア開発で使用される用語の理解

本記事では、ソフトウェア開発で一般的に使用される用語を解き明かすことを目指します。明確な定義と例を提供することで、ソフト開発の概念を志望する開発者からソフトウェ…

su_myat_phyu
4か月前
1

C++開発を強化する: プログラマー必見のVSCode拡張機能トップ10

1. C/C++ (Microsoft製) VSCodeでのC++開発における基本拡張機能で、IntelliSenseによる賢いコード補完、高度なデバッグ機能、シンボルとヘッダの参照が可能です。VSCode環…

su_myat_phyu
4か月前
3

プログラミングにおけるガーベジコレクションの理解

はじめに ガーベジコレクション(GC)は、Java、C#、Pythonなどの多くの現代プログラミング言語で使用されている自動メモリ管理機能です。プログラムがスムーズに実行され…

su_myat_phyu
5か月前
1
顔、目、口を認識するためのOpenCVの使用法 - C++での実装

顔、目、口を認識するためのOpenCVの使用法 - C++での実装

本記事では、OpenCVのHaar Cascadeを使用して画像中の顔と目を検出する方法について説明します。まず、Haar Cascadeについて簡単に紹介します。

Haar Cascadeの紹介
Haar Cascadeは、2001年にPaul ViolaとMichael Jonesによって導入された、コンピュータビジョンにおける物体検出のための広く使用されている手法です。この技術は、画像やビ

もっとみる
なぜC++開発者はデバッグモードとリリースモードの両方の実行ファイルを作成するのか???

なぜC++開発者はデバッグモードとリリースモードの両方の実行ファイルを作成するのか???

はじめに

ソフトウェア開発の世界では、特にC++のような言語を使う場合、異なるビルド構成を管理することが重要です。これにより、アプリケーションの品質と性能の両方を確保できます。一般的な実践として、デバッグモードとリリースモードの2つの異なるタイプの実行ファイルを作成します。これらは開発プロセスの異なる段階で特定の目的を果たし、それぞれが重要な利点を提供します。本記事では、なぜC++開発者がデバッ

もっとみる
具体的なC++でのOpenCVの使用: マイアプローチ (1)

具体的なC++でのOpenCVの使用: マイアプローチ (1)

OpenCV(オープンソース・コンピュータビジョンライブラリ)は、さまざまなコンピュータビジョンや機械学習のタスクに使用される強力なツールです。私は、C++でOpenCVを利用してプロジェクトを開発しています。この記事シリーズでは、私がどのようにOpenCVを使用しているのかを紹介します。この記事では、特にWindows環境におけるVisual Studio CodeとCMakeを使用したOpen

もっとみる
C++コードとコンパイラ

C++コードとコンパイラ

コンパイラとは?

コンパイラの概要と種類

コンパイラは、高水準プログラミング言語で書かれたソースコードを、コンピュータのプロセッサが実行できる機械語に翻訳するプログラムです。コンパイラは、コンパイルの段階、対象とする言語、サポートするプラットフォームなどのさまざまな基準に基づいていくつかの種類に分類されます。それでは、各種類について詳しく見ていきましょう。

コンパイル段階に基づく分類

(1

もっとみる
CMakeとVisual Studio Code:C++開発のための強力なコンビ

CMakeとVisual Studio Code:C++開発のための強力なコンビ

CMakeは、プラットフォームやコンパイラに依存しない方法でビルドプロセスを管理する広く使用されているビルドシステムです。特にC++プロジェクトにおいて、多くの魅力的な特徴と利点のために人気があります。

クロスプラットフォームビルド

CMakeを使用すると、開発者は異なるプラットフォーム(Windows、macOS、Linux)で機能する一連のビルド指示を記述できます。これにより、各プラットフ

もっとみる
CMakeLists.txtファイルの作成方法

CMakeLists.txtファイルの作成方法

CMakeLists.txt ファイルは、CMake を使用して C++ プロジェクトをどのように構築および管理するかを定義する特定の形式に従います。CMakeLists.txtファイルには、CMake が異なるプラットフォームおよびコンパイラ用のメイクファイルまたは他のビルド設定を生成するために解釈する一連のディレクティブコマンドが含まれています。

基本構造

通常、CMakeLists.tx

もっとみる
C++におけるオブジェクト指向プログラミング Part VII

C++におけるオブジェクト指向プログラミング Part VII

コンストラクタとは?
コンストラクタは、クラスのオブジェクトが作成されるときに自動的に呼び出される特別なクラス関数です。主にオブジェクトの初期化に使用されます。

コンストラクタのタイプ

デフォルトコンストラクタ: パラメータがないコンストラクタ。

パラメータ付きコンストラクタ: 属性を初期化するためのパラメータを持つコンストラクタ。

コピーコンストラクタ: 他のオブジェクトから変数をコピー

もっとみる
C++におけるオブジェクト指向プログラミング Part VI

C++におけるオブジェクト指向プログラミング Part VI

ポリモーフィズム (Polymorphism) とは何か?
ポリモーフィズムとは、「多くの形」という意味のギリシャ語からきており、一つの関数が異なるデータタイプに対して異なる方法で動作するOOPの概念です。C++では、メソッドが同じ名前であっても、それが作用するオブジェクトに基づいて異なる方法で動作することを可能にします。

C++におけるポリモーフィズムのタイプ

コンパイル時ポリモーフィズム(

もっとみる
C++におけるオブジェクト指向プログラミング Part V

C++におけるオブジェクト指向プログラミング Part V

継承 (Inheritance) とは何か?
継承は、新しいクラス(派生クラス)が既存のクラス(基底クラス)から属性やメソッドを受け継ぐOOPの機能です。この関係により、派生クラスは基底クラスで定義された動作を再利用、拡張、または変更できます。

C++における継承のタイプ

C++はいくつかのタイプの継承をサポートしています:

単一継承: 一つの基底クラスから派生する。

多重継承: 複数の基

もっとみる
C++におけるオブジェクト指向プログラミング Part IV

C++におけるオブジェクト指向プログラミング Part IV

抽象化(Abstraction)とは何か?
OOPにおける抽象化は、複雑な現実を隠蔽し、必要な部分のみを公開するプロセスです。オブジェクトが何をするかに焦点を当て、どのようにそれを行うかは隠します。C++では、クラスとインターフェイスを使用してこの目的を達成します。

C++における抽象化の実装

C++では、クラスのメソッドを定義することで抽象化を実現します。クラスのインターフェイス、つまり公開

もっとみる
C++におけるオブジェクト指向プログラミング Part III

C++におけるオブジェクト指向プログラミング Part III

カプセル化 (Encapsulation) とは何か?
カプセル化とは、データ(属性)とそれに作用するメソッド(関数)を一つの単位、つまりクラスにまとめること、およびオブジェクトの一部のコンポーネントへの直接アクセスを制限するプロセスです。これにより、誤った操作やメソッドの誤用を防ぎます。

C++におけるカプセル化の実装

C++では、クラス内のアクセス指定子を使用してカプセル化を実現します:

もっとみる
C++におけるオブジェクト指向プログラミング Part II

C++におけるオブジェクト指向プログラミング Part II

クラスとは何か?
C++でのクラスはオブジェクトを作成するための設計図(blueprint)です。データと関数を一つの単位にまとめることで、データ型を定義します。

クラスの定義方法
C++でクラスを定義するには、classキーワードに続けてクラス名と波括弧を使用します:

class MyClass { // 属性やメソッドはここに記述};

クラスの構造

C++の典型的なクラスには以下

もっとみる
C++におけるオブジェクト指向プログラミング Part I

C++におけるオブジェクト指向プログラミング Part I

オブジェクト指向プログラミングとは?

オブジェクト指向プログラミングは、アクションよりもオブジェクトを中心に、ロジックよりもデータを中心に据えたプログラミングのパラダイムです。OOPでは、クラスのインスタンスであるオブジェクトが、フィールド(属性やプロパティとしても知られる)とメソッド(関数)の形でデータを含むことができます。

OOPの基本原則

OOPは、以下の4つの基本原則に基づいています

もっとみる
ソフトウェア開発で使用される用語の理解

ソフトウェア開発で使用される用語の理解

本記事では、ソフトウェア開発で一般的に使用される用語を解き明かすことを目指します。明確な定義と例を提供することで、ソフト開発の概念を志望する開発者からソフトウェア制作の内部動作について単に興味がある人々まで、誰にとってもアクセスしやすいものにしようと努めます。用語を理解することは、絶えず進化するソフトウェア開発の風景をナビゲートする上で重要なステップです。

1. プラットフォーム (Platfo

もっとみる
C++開発を強化する: プログラマー必見のVSCode拡張機能トップ10

C++開発を強化する: プログラマー必見のVSCode拡張機能トップ10

1. C/C++ (Microsoft製)
VSCodeでのC++開発における基本拡張機能で、IntelliSenseによる賢いコード補完、高度なデバッグ機能、シンボルとヘッダの参照が可能です。VSCode環境とシームレスに統合され、C++開発作業における強固な基盤を提供します。

2. Code Runner
多言語に対応し、C++プログラマーがコードスニペットやファイルを簡単に実行できる汎用性

もっとみる
プログラミングにおけるガーベジコレクションの理解

プログラミングにおけるガーベジコレクションの理解

はじめに

ガーベジコレクション(GC)は、Java、C#、Pythonなどの多くの現代プログラミング言語で使用されている自動メモリ管理機能です。プログラムがスムーズに実行されるようにメモリ割り当てと回収のプロセスを簡素化することを目的としています。この記事では、ガーベジコレクションの基本、タイプ、およびソフトウェア開発への影響について詳しく説明します。

ガーベジコレクションとは何か?

ガーベ

もっとみる