new演算子、継承、スタックとヒープ、シリアライズコピーとシャローコピー
new演算子の内部仕組み
new演算子はオブジェクトをインスタンス化し、新しいオブジェクトを返します。コンストラクタ関数内のthisはインスタンスに参照されます。
new演算子の内部プロトタイプ
var p1 = {} で新規オブジェクトを作成し、メモリ空間を確保します。
Person.call(p1) を使用して、Person関数内のthisをp1に変更します。
p1.__proto__ == Person.prototype ...
6月26日 17:55 投稿
C++における継承と多態性の実装例
ロボットペットの多態性デモ
pets.hpp
#pragma once
#include <string>
#include <iostream>
class RoboPet {
public:
RoboPet(const std::string& name);
virtual std::string vocalize() = 0;
std::string get_name() const;
private:
std::string pet_name;
};
RoboPet::RoboPet(const std::string& name) : pet_name{name} {}
...
6月25日 18:05 投稿
Javaクラスの初期化順序
継承なしの場合:
1. 実行順序
静的メンバ変数
静的コードブロック
通常のメンバ変数
通常のコードブロック
コンストラクタ
2. 要約:
静的 -> 通常
変数 -> コードブロック -> コンストラクタ
コンストラクタは最後に実行される
3. サンプルコード:
public class Parent {
private static String name = "zct" ...
6月19日 16:12 投稿
C++継承における名前の衝突と解決方法
継承クラス間での名前競合
1. 派生クラスにおける同名メンバー変数の定義
2. 派生クラスのメンバーによる基底クラス同名メンバーの隠蔽
3. 基底クラスの同名メンバーの存在維持
4. スコープ解決演算子(::)による基底クラス同名メンバーへのアクセス
#include <iostream>
using namespace std;
class Base
{
public:
int value;
Base()
{
...
6月16日 22:59 投稿
C++コンストラクタの基礎と継承における注意点
C++におけるコンストラクタの役割
C++のコンストラクタは、クラスのオブジェクトが生成される際に自動的に呼び出される特殊なメンバー関数です。その主な目的は、オブジェクトの初期状態を適切に設定することにあります。コンストラクタはクラスと同名の識別子を持ち、戻り値の型を持ちません。
コンストラクタの特性と継承時の振る舞い
1. コンストラクタの非継承性
ク ...
6月11日 19:40 投稿
C#基本:抽象クラスとインターフェースの核心的な違い
C#におけるオブジェクト指向プログラミングを理解する上で、抽象クラスとインターフェースの違いを把握することは極めて重要です。どちらもクラスに特定の構造や振る舞いを強制する「契約」として機能しますが、その目的と特性には明確な違いがあります。本稿では、両者の概念を具体例と共に解説し、実際の開発でどのように使い分けるべきかを考察します。
抽象クラスの概 ...
6月9日 16:33 投稿
避けられない課題:コード依存
11.1 オブジェクト指向の基本
11.1.1 カプセル化
オブジェクト指向プログラミングの基本となる概念の一つがカプセル化です。これは、データとそのデータを操作するメソッドを一つの単位(オブジェクト)にまとめ、外部に不必要な情報を隠蔽する仕組みです。
以下の例では、学生に関する情報をカプセル化したクラスを定義しています。
class Student {
private Stri ...
6月6日 21:17 投稿
C++における継承とポリモーフィズムの核心
クラスの内部構造を調べるには、IDEの機能やtypeid、decltypeなどを活用すると便利です。
派生クラスのインスタンス生成時には、基底クラスのコンストラクタが先に呼び出されます。これは「合成よりも継承」の設計思想にも通じる動作で、基底部分の初期化が完了してから派生部分が構築されるため、オブジェクトの整合性が保たれます。
静的メンバへのアクセスは、インス ...
6月1日 10:36 投稿
Javaにおける継承の基本概念と実装
コード実装
まず、BaseCharacterクラス(基本キャラクター)を定義します
/**
* キャラクターの基本属性
*/
public class BaseCharacter {
/**
* キャラクター名
*/
String characterName;
/**
* 誕生日
*/
Date birthDate;
/**
* 連絡先
*/
String contactInfo;
/**
* 識別コード
*/
Stri ...
5月20日 05:32 投稿
プログラミング課題:クイズシステムと回路シミュレータの開発と実装
はじめに
本稿では、複数のプログラミング課題の実装について記述します。これには、以前の課題(クイズプログラム)の最終イテレーションと、最近行われた回路設計のイテレーション2つが含まれます。これらの課題は、自身のスキルを試すと同時に、技術的な成長を促す良い機会となりました。
設計と分析
課題4:多機能クイズシステム
1. コード分析
今回のイテレーシ ...
5月16日 09:24 投稿