「C ++」クラスとオブジェクト1

  • クラス紹介

C言語はプロセス指向言語であり、C ++はオブジェクト指向言語であることは誰もが知っていますが、プロセス指向とオブジェクト指向とは何ですか?プロセス指向は、プロセスに焦点を当て、問題を解決するためのステップを分析し、関数を呼び出すことによって問題を徐々に解決することです。一方、オブジェクト指向は、オブジェクトに焦点を当て、物を異なるオブジェクトに分割し、それらの間の相互作用によってそれを完了します。オブジェクト。??????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ??????????????????????????????????
C言語では、キーワードstructを使用して構造体を定義します。構造体は変数のみを定義できます。関数を定義する場合はどうすればよいですか?C ++では、変数だけでなく構造体の関数も定義できます。 C ++代わりにキーワードクラスが使用されます。

  • クラス定義

クラスを定義する方法は?形式は次のとおりです。

class classname//类的名字
{
    
    
	//类体:成员变量和成员函数组成
};

クラス内の要素はクラスのメンバーと呼ばれ、クラス内のデータはクラスの属性またはメンバー変数と呼ばれ、クラス内の関数はクラスのメソッドまたはメンバー関数と呼ばれます。私はそれらをメンバー変数と呼びます。それぞれとメンバー関数。
クラスを定義するには、次の2つの方法があり
ます。1。宣言と定義はすべてクラス本体に配置されます。メンバー関数がクラスで定義されている場合、コンパイラはそれをインライン関数として扱う場合があることに注意してください。

class person
{
    
    
	public:
	void show()//声明和定义全部放在类体中
	{
    
    
		cout<<_name<<"-"<<_sex<<"-"<<_age<<endl;
	}
	public:
	char* _name;
	char* _sex;
	int _age;
};

2.宣言は.hヘッダーファイルに配置され、クラス定義は.cppファイルに配置されます(推奨されるメソッド)

//person.h文件
class person
{
    
    
	public:
	void show()
	public:
	char* _name;
	char* _sex;
	int _age;
};

//person.cpp
#include"person.h"
void person::show()
{
    
    
	cout<<_name<<"-"<<_sex<<"-"<<_age<<endl;
}
  • クラスアクセス修飾子とパッケージ

最初に質問してください:C ++の構造体とクラスの違いは何ですか?
C ++はC言語と互換性がある必要があるため、C ++では構造体を構造体として使用でき、クラスを定義することもできます。クラス定義クラスと同じです。違いは、構造体のメンバーのデフォルトのアクセス方法がパブリックであるということです。 、およびクラスのメンバーのデフォルトアクセスメソッドはprivateです。

ここでは、クラスのアクセス修飾子であるpublicとprivateを紹介します。アクセス修飾子には、public(public)、private(private)、protected(protected)の3種類があります。
アクセス修飾子の説明:

  • パブリックによって変更されたメンバーは、クラス外から直接アクセスできます
  • 保護されたメンバーと変更されたプライベートメンバーは、クラスの外部から直接アクセスすることはできません(2つは類似しています)
  • アクセス権の範囲は、アクセス修飾子が表示される位置から始まり、次のアクセス修飾子が表示されるまでです。
  • アクセス修飾子はコンパイル時にのみ役立ちます。データがメモリにマップされた後は、アクセス修飾子に違いはありません。

したがって、C ++がカプセル化を実装する方法は、オブジェクトのプロパティとメソッドをクラスと組み合わせてオブジェクトをより完全にし、アクセス許可を通じて外部ユーザーにそのインターフェイスを選択的に提供することであると考えることができます。
カプセル化は、博物館の管理と同じように、本質的には一種の管理であり、文化財の山を一か所に置いて人々に見てもらうと、管理せずにしばらくすると消えてしまう可能性があるため、博物館が建てられます。これらの文化的遺物を収集するためにカプセル化され、目的はそれらすべてをカプセル化して見えないようにすることではないため、すべての文化的遺物を見ることができるわけではなく、すべての人が監督下で訪問できるように発券チャネルが開かれます。一部の文化的遺物は見ることができません。見られる、つまり、それらは完全にカプセル化されています。これはクラスと同じです。他の人に見られたくない場合は、private / protectedを使用してメンバーをカプセル化し、一部のパブリックメンバーを開いてアクセスできるようにするため、カプセル化の本質は一種の管理です。

おすすめ

転載: blog.csdn.net/NanlinW/article/details/103169380