in c in c:自律的な実装
PHPのような言語で広く使用されているセルフキーワードは、同等のメカニズムがないため、Cで課題を提起します。ネストされたtypedefsを使用したクラス固有の実装は簡単ですが、微妙なバグを導入するリスクとリスクが必要です。この記事では、Decltypeとテンプレートを使用して自律的な自己実装を実現するエレガントなソリューションを調査します。これを解決するには、テンプレート内の自己宣言をカプセル化する必要があります。
クラスセルフベース
このテンプレートは、自己にアクセスできるタイプの基本クラスとして機能します。 x with_self_derived(x、...):selfbase
examplesに基本クラスとして追加します。 { void test() { self foo; //自己が利用可能になりました } }; //多重継承 クラスwith_self_derived(bar、foo、foo2) { / * ... */ };
templateclass SelfBase : public Ts... { protected: typedef X self; };
結論
をレバレッジとテンプレートを活用することにより、c。このアプローチにより、クラスの再定義の欠陥によるサイレントバグのリスクなしにクラス内で自己を使用することができます。提供された便利なマクロは、実装を簡単かつ柔軟にし、複数の基本クラスの継承と自己および通常の基本クラスの異なる組み合わせを可能にします。。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3