Pythonのオブジェクト指向プログラミング:カプセル化とコンストラクタ

2. カプセル化 オブジェクト指向プログラミングの三大特徴は、カプセル化、継承、ポリモーフィズムです。 2.1 カプセル化の理論 2.1.1 カプセル化とは何か オブジェクト指向プログラミングにおいて、オブジェクトの属性(データ)と振る舞い(メソッド)をオブジェクト内部に設計し、オブジェクト内のデータが外部から意図せずアクセスまたは変更されることを防ぐことを ...

6月24日 21:35 投稿

C++のメモリ管理とオブジェクト指向機能の詳細解説

C++メモリ領域の分割 C++プログラム実行時のメモリは4つの領域に分割されます: コード領域: 関数のバイナリコードを格納 グローバル領域: グローバル変数、静的変数、定数を格納 スタック領域: 関数パラメータ、ローカル変数を格納(コンパイラ自動管理) ヒープ領域: プログラマが手動でメモリを割り当て/解放 プログラム実行前のメモリ状態 コンパイル後、実行前 ...

6月15日 20:12 投稿

C++におけるクラスとオブジェクト:デフォルトメンバ関数の詳細

一.クラスの6つのデフォルトメンバ関数 前回の記事ではクラスについて学びました。クラスについて言及する際、避けて通れないのがクラスの6つのデフォルトメンバ関数です。 もしクラスの中に何も記述しない、いわゆる空のクラスの場合: class MyClass {}; // これが空のクラスです しかし、本当に空のクラスは何も持っていないのでしょうか?答えは否定的です。何も記述 ...

6月14日 23:01 投稿

C++コンストラクタの基礎と継承における注意点

C++におけるコンストラクタの役割 C++のコンストラクタは、クラスのオブジェクトが生成される際に自動的に呼び出される特殊なメンバー関数です。その主な目的は、オブジェクトの初期状態を適切に設定することにあります。コンストラクタはクラスと同名の識別子を持ち、戻り値の型を持ちません。 コンストラクタの特性と継承時の振る舞い 1. コンストラクタの非継承性 ク ...

6月11日 19:40 投稿

Javaの基本:メソッドの引数とthisキーワード

メソッドの引数とthisキーワード Javaのクラスとオブジェクトの仕組みは非常に広範です。今回は、メソッドの引数、メソッドのオーバーロード、コンストラクタ、およびthisキーワードの使用について説明します。 1. returnキーワードの役割 returnキーワードは、メソッド内で処理を終了し、値を呼び出し元に戻す際に使用されます。 public class MethodReturn { pu ...

5月29日 19:04 投稿

C++ クラスの基礎:特殊メンバ関数とオブジェクトのライフサイクル

C++のクラスを設計する際、特定のメンバ関数は、ユーザーが明示的に定義しなくてもコンパイラによって自動生成されることがあります。これらをデフォルトメンバ関数と呼びます。C++のクラスには、以下の6つのデフォルトメンバ関数が存在します。C++11以降では、ムーブコンストラクタとムーブ代入演算子が追加され、合計8つとなりますが、本記事では特に重要な初期の6つに焦 ...

5月20日 01:44 投稿

C++におけるクラスとオブジェクトの完全解説

プロシージャルプログラミングとオブジェクト指向の違い C言語はプロシージャル(手続き型)プログラミングを採用しており、問題解決の流れを関数の呼び出しで表現します。一方、C++はオブジェクト指向プログラミング(OOP)に基づいており、現実世界の「物事」をモデル化したオブジェクトとして捉え、それらの相互作用によって処理を完遂します。 クラスの基本構文 C++で ...

5月16日 19:21 投稿

C++クラスとオブジェクトの基本

1. クラスとオブジェクト 1.1 クラスの定義 C++では、classキーワードを使ってクラスを定義する。以下はスタックを表すクラスの例である: #include <iostream> using namespace std; class Stack { private: int* _data; int _index; int _maxSize; public: void push() {} void pop() {} }; // セミコロンが必要 メンバー変数には慣習的に ...

5月15日 14:21 投稿