C++ クラスとオブジェクト (パート 1)

ヒント: 記事を作成した後、目次を自動的に生成できます。生成方法は、右側のヘルプドキュメントを参照してください。

記事ディレクトリ

目次

序文

1. オブジェクト指向とプロセス指向とは何ですか?

1. プロセス指向

2. オブジェクト指向

2つ目はクラスの紹介です

クラスを定義するには 2 つの方法があります。

方法 1

方法 2

3. クラスアクセス修飾子とカプセル化

1. アクセス修飾子

2. カプセル化

3. 範囲

要約する



序文

文を共有します:

UNIX オペレーティング システムはシンプルで一貫性がありますが、そのシンプルさを理解して評価できるのは天才 (少なくともプログラマー) だけです。

                                                                                                           ——デニス・リッチー


提示:以下是本篇文章正文内容,下面案例可供参考

1. オブジェクト指向とプロセス指向とは何ですか?

1. プロセス指向

C 言語はプロセス指向でありプロセスに焦点を当て、問題を解決するためのステップを分析し、関数呼び出しを通じて問題を段階的に解決します。

この文をどう理解すればいいでしょうか?

例えば:

今日は豚の角煮が食べたいので材料を準備しなければなりません

作成手順:

ステップ1: 豚バラ肉をきれいにし、ストリップ全体を沸騰したお湯に入れ、30秒間加熱します。

ステップ2:取り出して、冷めるまで蛇口の下で洗い、厚めに切り、沸騰したお湯のポットに入れて湯通しし、再び取り出して蛇口の下に置き、冷めるまで洗います。 、沸騰した湯の鍋に入れて再度湯通しし、取り出して水を切ります。

ステップ3:フライパンに油を入れ、冷たい油に桂皮、月桂樹の葉、スターアニスを加え、弱火で炒めて香りを出します。

ステップ4: 豚バラ肉を加えて炒め、脂を流し、脂っこい味を減らします。

ステップ5: 豚バラ肉を両面が少し黄色くなるまで炒めます。

手順6:氷砂糖または黒砂糖、藁茸醤油、薄口醤油、塩を加えます。

ステップ7: 各肉に色が付くように均等に炒めます。

ステップ8:すべての材料が浸らない程度の熱湯を加え、鍋に蓋をせず、強火で沸騰させ、泡を取り除きます。

ステップ9:生姜のスライスとナツメを加え、強火で沸騰させ、その後弱火にして40分から1時間煮ます。

第 10 ステップ: 火がジュースを集めます。

ステップ11:汁を集めながら炒める。

ステップ12:ソースが濃くなり、豚バラ肉のすべての部分がソースで覆われるまで。

2. オブジェクト指向

C++ はオブジェクト指向に基づいており、オブジェクトに焦点を当て、1 つのものをさまざまなオブジェクトに分割し、オブジェクト間の相互作用に依存して完了します。

豚の角煮が食べたければ、直接お店に行って豚の角煮を注文してください

オブジェクトは人、お金、レストランの 3 つです。

全体のプロセスは次のとおりです。人々はレストランに行って食べ物を注文し、支払いをします。

プロセス全体では、豚の角煮がどのように作られるかを理解する必要はありません。

2つ目はクラスの紹介です

C の構造体は変数のみを定義できますが、C++ では構造体は変数だけでなく関数も定義できます。

コードは次のとおりです(例)。

struct Student
{

	char _name[10];
	int _age;
	int _id; 
	void INT(const char* name,int age,int id)
	{
		strcpy(_name, name);
		_age = age;
		_id = id;
	}
	void print()
	{
		cout << "姓名: " << _name << endl;
		cout << "年龄: " << _age << endl;
		cout << "ID: " << _id << endl;
	}
};

しかし、C++ ではクラスを使用して定義することを好みます。

コードは次のとおりです(例)。

class MyClass
{
    //类体:成员函数与成员变量
};

class はクラスを定義するためのキーワード、MyClass はクラス名、{} はクラスの本体です。クラス定義の最後のセミコロンは省略できないことに注意してください

クラス本体の内容はクラスのメンバーと呼ばれ、クラス内の変数はクラスの属性またはメンバー変数と呼ばれ、クラス内の関数はクラスのメソッドまたはメンバー関数と呼ばれます。

クラスを定義するには 2 つの方法があります。

方法 1

1. 宣言と定義はすべてクラス本体に配置されますが、クラス内でメンバー関数が定義されている場合、コンパイラはそれをインライン関数として扱う可能性があることに注意してください。 

class MyClass
{
private:
	int _a;
	int _b;
public:
	int sum(int a, int b)
	{
		return a + b;
	}
	void print()
	{
		cout << _a << endl;
		cout << _b << endl;
	}
};

方法 2

2. クラス宣言は .h ファイルに配置され、メンバー関数定義は .cpp ファイルに配置されます。注: クラス名はメンバー関数名の前に追加する必要があります::

.h ファイル

.c ファイル

3. クラスアクセス修飾子とカプセル化

1. アクセス修飾子

3 つのタイプがあります。

公共

保護された

プライベート

アクセス修飾子の説明】
1. public で変更されたメンバはクラス外から直接アクセスできる
2. protected や private で変更されたメンバはクラス外から直接アクセスできない(ここでの protected と private は同様)
3. アクセス権の範囲はアクセス修飾子が出現する位置は、次のアクセス修飾子が出現するまで始まります
4. 後ろにアクセス修飾子がない場合、スコープは }、つまりクラスの終わりになります。
5. デフォルトのアクセス権限は、class は private、struct は public (struct は C と互換性があるため)

2. カプセル化

クラスとオブジェクトの段階では、主にクラスのカプセル化特性を学習するため、カプセル化とは何ですか?
カプセル化: データとデータを操作するメソッドを有機的に結合し、オブジェクトのプロパティと実装の詳細を非表示にし、オブジェクトと対話するインターフェイスのみを公開します。カプセル化は本質的に、ユーザーがクラスを使いやすくするための管理です。

C++ 言語のカプセル化では、クラスを通じてデータとデータを操作するメソッドを有機的に組み合わせ、アクセス権を通じてオブジェクトの内部実装の詳細を隠し、どのメソッドをクラスの外部で直接使用できるかを制御できます。

3. 範囲

クラスは新しいスコープを定義し、クラスのすべてのメンバーはクラスのスコープ内にあります。クラス外のメンバーを定義する場合は ::スコープ演算子を使用して、メンバーがどのクラス ドメインに属しているかを示す必要があります。

コードは以下のように表示されます。

class Stack
{
private:
	int* _a;
	int _top;
	int _capacity;
public:
	void Init();
	void Push(int x);
	
};

void Stack::Init()
{
	_a = nullptr;
	_top = _capacity = 0;
}

要約する

ヒント: これが記事の要約です。
今日はここまでです。内容はまだ説明されていません。フォローアップの補足を待っています。ありがとうございます。

おすすめ

転載: blog.csdn.net/qq_45591898/article/details/129529093