検索
ホームページバックエンド開発C#.Net チュートリアルC++ レビューの要点のまとめその 8 - 継承 1

1 異なる継承メソッドは、継承されたメンバーのアクセス属性を変更します

パブリックに変更されたメンバー変数とメソッドは、クラスの内部と外部の両方で使用できます。

保護された変更されたメンバー変数とメソッドは、クラス内および継承されたサブクラス内で使用され、クラスの外部では使用できません。 (ファミリー内および継承用です!)

プライベートで変更されたメンバー変数とメソッドはクラス内でのみ使用でき、クラス外では使用できません

1) C++ の継承メソッドはサブクラスに影響します 外部アクセス属性

パブリック継承: 親クラスのメンバーは、子クラスの元のアクセス レベルを維持します

プライベート継承: 親クラスのメンバーは、子クラスのプライベート メンバーになります

保護された継承: 親クラスのパブリック メンバーは保護されます

親クラスの保護されたメンバーは引き続き保護されます

親クラスのプライベートメンバーは依然としてプライベートです

2) プライベートメンバーはサブクラスにまだ存在しますが、アクセスできません。基本クラスを継承する方法に関係なく、派生クラスは基本クラスのプライベート メンバーを直接使用できません。

3) C++ のサブクラスは外部から属性テーブルにアクセスします

親クラスのメンバーのアクセス レベル

継承メソッド

 public(继承方式)    proteced(继承方式)    private(继承方式)    
public   public   proteced  private    
proteced   proteced   proteced   private    
private   private   private   Private

注目すべき 3 つのこと:

C++ の継承メソッド (パブリック、プライベート、プロテクト) will サブクラスの外部アクセス属性に影響を与えます

特定の文にアクセスできるかどうかを判断します

1) この文はサブクラスの内部と外部に記述されています

2) サブクラスが親からどのように継承されているかを確認します

クラス ( public、private、protected)

3) 親クラスのアクセス レベル (public、private、protected) を確認します

派生クラス メンバーのアクセス レベルを設定するための原則

考え方: public の使用方法、保護され、適切にプライベート メンバーのアクセス レベルを宣言しますか?

1. 外部からアクセスする必要があるメンバーは、直接 public に設定されます

2. 現在のクラス内でのみアクセスできるメンバーは、private に設定されます

3.クラスとサブクラスは保護に設定されます。保護されたメンバーのアクセス権はパブリックとプライベートの間です。

2 型互換性の原則

型互換性ルールは、基本クラス オブジェクトが必要な場合は常に、代わりにパブリック派生クラスのオブジェクトを使用できることを意味します。パブリック継承を通じて、派生クラスはコンストラクターとデストラクターを除く基本クラスのすべてのメンバーを取得します。このように、パブリック派生クラスは実際には基本クラスのすべての機能を備えており、基本クラスが解決できる問題はすべてパブリック派生クラスによって解決できます。型互換性ルールで参照される置換には、次の状況が含まれます:

サブクラス オブジェクトを親クラス オブジェクトとして使用できる

サブクラス オブジェクトを親クラス オブジェクトに直接割り当てることができる

サブクラス オブジェクトが親クラス オブジェクトを直接初期化できる

Parentクラスポインタはサブクラスオブジェクトを直接指すことができます

親クラス参照はサブクラスオブジェクトを直接参照できます

置換後、派生クラスオブジェクトは基本クラスのオブジェクトとして使用できますが、基本クラスから継承されたメンバーのみですクラスを使用できます。

型互換性ルールはポリモーフィズムの重要な基礎の 1 つです。

最初の意味:
1-1 基本クラスのポインター (参照) はサブクラス オブジェクトを指します


Parent *p = Null;
p = &c1;
p->printp();
1-2 指针做函数参数
howToPrint(&p1);
howToprint(&c1);
1-3引用做函数参数
howToprint2(p1);
howToprint2(c1);

2 番目の意味

は、親クラス オブジェクトがサブクラス オブジェクトを初期化できるようにすることができます

Parent p3 = c1;

3 つの継承におけるオブジェクト モデル

質問: 親クラスのメンバーを初期化するにはどうすればよいですか?親クラスと子クラスのコンストラクター間の関係は何ですか? 子クラス オブジェクトを構築するとき、その継承されたメンバーを初期化するために親クラスのコンストラクターを呼び出す必要があります。子クラス オブジェクトが破棄されるときは、 を呼び出す必要があります。親クラスのデストラクター。コンストラクターは継承されたメンバーをクリーンアップします



継承における構築と破棄の呼び出し原則 (初期化時に最初に父、次に子)

1.まず親クラスのコンストラクターを呼び出します

2. 親クラスのコンストラクターの実行が完了したら、サブクラスのコンストラクターを実行します

3. 親クラスのコンストラクターにパラメーターがある場合、呼び出しは次のようになります。サブクラスの初期化リストに表示されます

4. デストラクターの呼び出し順序はコンストラクターの逆です

以上が C++ の復習ポイントの第 8 回のまとめです - 関連する内容については、PHP に注目してください。中国語のウェブサイト (www.php.cn)!

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
汎用性のある.NET言語としてのC#:アプリケーションと例汎用性のある.NET言語としてのC#:アプリケーションと例Apr 26, 2025 am 12:26 AM

C#は、エンタープライズレベルのアプリケーション、ゲーム開発、モバイルアプリケーション、Web開発で広く使用されています。 1)エンタープライズレベルのアプリケーションでは、C#がasp.netcoreにWebAPIを開発するためによく使用されます。 2)ゲーム開発では、C#がUnityエンジンと組み合わされて、ロールコントロールやその他の機能を実現します。 3)C#は、コードの柔軟性とアプリケーションのパフォーマンスを改善するために、多型と非同期プログラミングをサポートします。

Web、デスクトップ、モバイル開発用のC#.NETWeb、デスクトップ、モバイル開発用のC#.NETApr 25, 2025 am 12:01 AM

C#と.NETは、Web、デスクトップ、モバイル開発に適しています。 1)Web開発では、ASP.Netcoreがクロスプラットフォーム開発をサポートしています。 2)デスクトップ開発では、さまざまなニーズに適したWPFとWINFORMSを使用します。 3)モバイル開発は、Xamarinを介したクロスプラットフォームアプリケーションを実現します。

C#.NETエコシステム:フレームワーク、ライブラリ、およびツールC#.NETエコシステム:フレームワーク、ライブラリ、およびツールApr 24, 2025 am 12:02 AM

C#.NETエコシステムは、開発者がアプリケーションを効率的に構築できるようにするための豊富なフレームワークとライブラリを提供します。 1.ASP.NETCOREは、高性能Webアプリケーションの構築に使用されます。2.EntityFrameWorkCoreは、データベース操作に使用されます。これらのツールの使用とベストプラクティスを理解することにより、開発者はアプリケーションの品質とパフォーマンスを向上させることができます。

azure/awsへのc#.netアプリケーションの展開:ステップバイステップガイドazure/awsへのc#.netアプリケーションの展開:ステップバイステップガイドApr 23, 2025 am 12:06 AM

c#.netアプリをAzureまたはAWSに展開する方法は?答えは、AzureAppServiceとAwselasticBeanStalkを使用することです。 1。Azureでは、AzureAppServiceとAzurePipelinesを使用して展開を自動化します。 2。AWSでは、Amazon ElasticBeanstalkとAwslambdaを使用して、展開とサーバーレス計算を実装します。

C#.NET:強力なプログラミング言語の紹介C#.NET:強力なプログラミング言語の紹介Apr 22, 2025 am 12:04 AM

C#と.NETの組み合わせにより、開発者に強力なプログラミング環境を提供します。 1)C#は、多型と非同期プログラミングをサポートします。2).NETは、クロスプラットフォーム機能と同時処理メカニズムを提供し、デスクトップ、Web、モバイルアプリケーション開発で広く使用されています。

.NETフレームワーク対C#:用語のデコード.NETフレームワーク対C#:用語のデコードApr 21, 2025 am 12:05 AM

.NetFrameworkはソフトウェアフレームワークであり、C#はプログラミング言語です。 1..netframeworkは、デスクトップ、Web、モバイルアプリケーションの開発をサポートするライブラリとサービスを提供します。 2.C#は.NetFrameWork用に設計されており、最新のプログラミング機能をサポートしています。 3..NetFrameworkはCLRを介してコード実行を管理し、C#コードはILにコンパイルされ、CLRによって実行されます。 4. .NetFrameWorkを使用してアプリケーションをすばやく開発し、C#はLINQなどの高度な関数を提供します。 5.一般的なエラーには、タイプ変換と非同期プログラミングデッドロックが含まれます。 VisualStudioツールは、デバッグに必要です。

C#.NETの分解:初心者の概要C#.NETの分解:初心者の概要Apr 20, 2025 am 12:11 AM

C#は、Microsoftが開発した最新のオブジェクト指向プログラミング言語であり、.NETはMicrosoftが提供する開発フレームワークです。 C#は、CのパフォーマンスとJavaのシンプルさを組み合わせており、さまざまなアプリケーションの構築に適しています。 .NETフレームワークは、複数の言語をサポートし、ガベージコレクションメカニズムを提供し、メモリ管理を簡素化します。

C#と.NETランタイム:それらがどのように連携するかC#と.NETランタイム:それらがどのように連携するかApr 19, 2025 am 12:04 AM

C#と.NETランタイムは密接に連携して、開発者に効率的で強力なプラットフォームの開発機能に力を与えます。 1)C#は、.NETフレームワークとシームレスに統合するように設計されたタイプセーフおよびオブジェクト指向のプログラミング言語です。 2).NETランタイムは、C#コードの実行を管理し、ガベージコレクション、タイプの安全性、その他のサービスを提供し、効率的でクロスプラットフォームの操作を保証します。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。