su_myat_phyu

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

su_myat_phyu

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

マガジン

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

    • 0本

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

最近の記事

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

CMakeは、プラットフォームやコンパイラに依存しない方法でビルドプロセスを管理する広く使用されているビルドシステムです。特にC++プロジェクトにおいて、多くの魅力的な特徴と利点のために人気があります。 クロスプラットフォームビルド CMakeを使用すると、開発者は異なるプラットフォーム(Windows、macOS、Linux)で機能する一連のビルド指示を記述できます。これにより、各プラットフォーム用に別々のビルドスクリプトを維持する必要がなくなります。CMakeは、Un

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

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

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

        コンストラクタとは? コンストラクタは、クラスのオブジェクトが作成されるときに自動的に呼び出される特別なクラス関数です。主にオブジェクトの初期化に使用されます。 コンストラクタのタイプ デフォルトコンストラクタ: パラメータがないコンストラクタ。 パラメータ付きコンストラクタ: 属性を初期化するためのパラメータを持つコンストラクタ。 コピーコンストラクタ: 他のオブジェクトから変数をコピーしてオブジェクトを作成するコンストラクタ。 コンストラクタの例: class

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

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

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

        マガジン

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

        記事

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

          継承 (Inheritance) とは何か? 継承は、新しいクラス(派生クラス)が既存のクラス(基底クラス)から属性やメソッドを受け継ぐOOPの機能です。この関係により、派生クラスは基底クラスで定義された動作を再利用、拡張、または変更できます。 C++における継承のタイプ C++はいくつかのタイプの継承をサポートしています: 単一継承: 一つの基底クラスから派生する。 多重継承: 複数の基底クラスから派生する。 多段階継承: クラスが派生クラスから派生し、多段階の階

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

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

          抽象化(Abstraction)とは何か? OOPにおける抽象化は、複雑な現実を隠蔽し、必要な部分のみを公開するプロセスです。オブジェクトが何をするかに焦点を当て、どのようにそれを行うかは隠します。C++では、クラスとインターフェイスを使用してこの目的を達成します。 C++における抽象化の実装 C++では、クラスのメソッドを定義することで抽象化を実現します。クラスのインターフェイス、つまり公開されているメソッドは、外部から見て単純化されたビューを提供します。 抽象化を用

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

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

          カプセル化 (Encapsulation) とは何か? カプセル化とは、データ(属性)とそれに作用するメソッド(関数)を一つの単位、つまりクラスにまとめること、およびオブジェクトの一部のコンポーネントへの直接アクセスを制限するプロセスです。これにより、誤った操作やメソッドの誤用を防ぎます。 C++におけるカプセル化の実装 C++では、クラス内のアクセス指定子を使用してカプセル化を実現します: private(プライベート):メンバーはクラス内部からのみアクセス可能。

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

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

          クラスとは何か? C++でのクラスはオブジェクトを作成するための設計図(blueprint)です。データと関数を一つの単位にまとめることで、データ型を定義します。 クラスの定義方法 C++でクラスを定義するには、classキーワードに続けてクラス名と波括弧を使用します: class MyClass { // 属性やメソッドはここに記述}; クラスの構造 C++の典型的なクラスには以下のものが含まれます: データメンバー:データを保持する変数。 メンバー関数:

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

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

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

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

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

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

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

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

          1. C/C++ (Microsoft製) VSCodeでのC++開発における基本拡張機能で、IntelliSenseによる賢いコード補完、高度なデバッグ機能、シンボルとヘッダの参照が可能です。VSCode環境とシームレスに統合され、C++開発作業における強固な基盤を提供します。 2. Code Runner 多言語に対応し、C++プログラマーがコードスニペットやファイルを簡単に実行できる汎用性とユーザーフレンドリーな拡張機能です。特にC++でのアルゴリズムのテストや小さな

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

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

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

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

          C++ライブラリとフレームワーク(Part III)

          C++ライブラリの高度なトピック 並行性と並列性: マルチコアプロセッサの登場により、C++開発における並行性が重要な領域になっています。IntelのTBB(Threading Building Blocks)やMicrosoftのPPL(Parallel Patterns Library)などのライブラリは、計算リソースのより効率的な利用を可能にする並列プログラミングの高度なオプションを提供しています。 機械学習とデータサイエンス: データサイエンスと機械学習でのC++

          C++ライブラリとフレームワーク(Part III)

          C++ライブラリとフレームワーク(Part II)

          このシリーズの最初の部分では、Boost、Qt、標準テンプレートライブラリ(STL)など、基本的で広く使用されているC++ライブラリとフレームワークについて探りました。この第二回では、重要なライブラリであるPocoに焦点を当て、ツールが実際のC++プロジェクトでどのように適用されるかを見ていきます。 Poco(ポータブルコンポーネント)ライブラリ 概要 Poco(ポータブルコンポーネント)ライブラリは、C++開発を簡素化するオープンソースのC++クラスライブラリのコレクシ

          C++ライブラリとフレームワーク(Part II)

          C++ライブラリとフレームワーク (Part I)

          C++ライブラリとフレームワークへの序章 C++は非常に汎用性が高く、強力なプログラミング言語で、システム/ソフトウェア開発、ゲーム開発、組込みシステムなど幅広い分野で使用されています。C++の主要な強みの一つは、機能を拡張し、開発をより迅速かつ効率的にし、管理を容易にする豊富なライブラリとフレームワークのエコシステムです。この三部作の記事シリーズでは、Boost、Qt、STL、Pocoなどの人気があり、広く使用されているC++ライブラリとフレームワークに焦点を当て、それら

          C++ライブラリとフレームワーク (Part I)

          C++とのウェブ開発言語統合

          はじめに 本記事では、Rust、JavaScript/TypeScript、Go、Kotlinといったウェブ開発言語のC++との統合に焦点を当て、ウェブ開発のための実践的な指針を提供します。 1. Rust: 安全性とパフォーマンスの融合 Rustはメモリの安全性とパフォーマンスで知られており、ウェブ開発においてC++の貴重なパートナーです。 統合方法: RustとC++の統合の鍵は外国関数インターフェース(FFI)を通じています。RustはC++の関数を呼び出すことが

          C++とのウェブ開発言語統合