問題タブ [derived-class]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
5 に答える
5020 参照

.net - 基本クラスのイベント

さて、イベントを宣言する基本クラスがありますStatusTextChanged。もちろん、私の子供クラスはこのイベントを直接提起することはできません。

だから私はこのようなものになります(簡単にするために):

そして、子クラスで私はを呼び出します MyBase.RaiseStatusTextChangedEvent("something")。これを行うためのより良いまたはより推奨される方法はありますか?

編集:VB.NETまたはC#、どちらの方法でも基本的に同じように機能します。

編集:したがって、応答後、私は基本クラスでこれに到達し、子クラスでStatusTextプロパティを設定するだけです...

0 投票する
2 に答える
4632 参照

c++ - すべての派生型のクラス テンプレートを部分的に特殊化する方法は?

std::tr1::hash変更できない既存のテンプレート ( ) を基本クラスとすべての派生クラスに部分的に特化したいと考えています。その理由は、ポリモーフィズムに奇妙に繰り返されるテンプレート パターンを使用しており、ハッシュ関数が CRTP 基底クラスに実装されているためです。CRTP 基底クラスに部分的に特化したい場合は簡単です。次のように書くだけです。

しかし、この特殊化は実際の派生クラスとは一致せず、CRTPBase<Derived>. 私が欲しいのは、Derivedそれがから派生した場合にのみ、部分的な特殊化を書く方法ですCRTPBase<Derived>。私の疑似コードは

...しかし、コンパイラはそれenable_if<condition, Derived>::typeDerived. を変更できる場合は、ドキュメントで推奨されているように、std::tr1::hash使用する別のダミー テンプレート パラメータを追加するだけですが、それは明らかにあまり良い解決策ではありません。この問題を回避する方法はありますか? 作成するたびにカスタム ハッシュ テンプレートを指定する必要がありますか、それとも派生クラスごとに完全に特化する必要がありますか?boost::enable_ifenable_ifunordered_setunordered_maphash

0 投票する
4 に答える
17385 参照

c++ - 派生テンプレート クラスがベース テンプレート クラスの識別子にアクセスできないのはなぜですか?

検討:

これを GCC g++ 3.4.4 (cygwin) でコンパイルできません。

これらをクラス テンプレートに変換する前は、それらは非ジェネリックであり、派生クラスは基本クラスの静的メンバーを参照できました。この可視性の喪失は C++ 仕様の要件ですか、それとも構文を変更する必要がありますか?

Base<T>の各インスタンス化には独自の静的メンバー " ZEROFILL" と " NO_ZEROFILL" がBase<float>::ZEROFILLあり、それは異なる変数であることは理解していますがBase<double>::ZEROFILL、あまり気にしません。定数は、コードを読みやすくするためにあります。マクロやグローバルよりも名前の競合に関して安全であるため、静的定数を使用したかったのです。

0 投票する
3 に答える
1228 参照

c++ - 派生クラスオブジェクトから同じシグネチャを持つ基本クラスfnにアクセスします

派生クラスオブジェクトを使用して、派生クラス関数と同じシグネチャを持つ基本クラス関数にアクセスすることはできますか?これが私が以下に述べていることのサンプルです。

0 投票する
3 に答える
129 参照

c++ - C++ に関する問題を導き出す

クラス B 初期化リストのメンバーである基本クラス A にアクセスできないのはなぜですか?

0 投票する
2 に答える
120 参照

asp.net - 基本クラスの各派生オブジェクトのメソッドを呼び出すためのより良い方法はありますか?

いくつかのクラスを派生させる基本クラスがあります。これらすべての派生クラスを異なる方法で使用する別のクラスがあります。Update()ただし、派生クラスごとに(基本クラスから継承された)メソッドを呼び出したいと思います。これを行う簡単な方法はありますか、それとも次のようなことをする必要がありますか?

0 投票する
2 に答える
4839 参照

linq-to-sql - Linq-to-SQL で派生クラスをテーブルにマッピングする

監査プロパティの抽象基本クラスがあります。簡潔にするために、1 つのプロパティがあるとします。

そして、私の監査可能なドメイン オブジェクトは、このクラスから継承します

ドメインオブジェクト「ソース」をマップする次のテーブル DDL があります。基本的に、各 (具体的な) ドメイン オブジェクトとテーブルの関係は 1 対 1 であり、各テーブルには必要な監査列があります。

外部マッピング ファイルを使用して、クラスをテーブルにマップする最初の試みは次のようになります。

ただし、これにより次の例外が生成されます。

マッピングの列または関連付け 'CreatedTime' には、タイプ 'Source' に対応するメンバーがありませんでした。上記のルート タイプからのメンバーのマッピングはサポートされていません。

永続化レイヤーのコンテキスト内では、継承階層をそのまま表現しようとはしていませんが、アプリケーションのコンテキスト内では、すべてのドメイン オブジェクトに必要なプロパティを提供するために基本クラスを使用しているだけです。マッピング ファイル (監査列をベースの AbstractAuditableEntity 型にマッピングすることを含む) をいじったり、読み回したりしても、非常に単純な ORM タスクと認識しているものを達成できません。

どんな考えや提案も大歓迎です!ありがとう

0 投票する
1 に答える
1915 参照

c# - XMLSerializer が基本クラスの DefaultValue 属性を使用してシリアル化するのはなぜですか

最初のシリアル化は期待どおりですが(デフォルト値の非シリアル化):

2番目の結果は次のとおりです。

明らかに、XmlSerializer は、新しいクラスを取得する代わりに、基本クラスの既定値を取得します。"override" で仮想プロパティをオーバーライドすると、同じ結果が得られます。ExData のプロパティ A の初期化を 10 に変更すると、基本クラス プロパティの既定値が適用されているかのように、このプロパティはシリアル化されません。誰かが私にこの振る舞いを説明できますか? 誰もこれに対する回避策を知っていますか?

私の目的は、デフォルト値を非シリアル化することですが、派生クラスのデフォルト値を変更することです。

0 投票する
5 に答える
606 参照

c++ - 抽象クラスを使用して派生クラスの要素のスタックを実装する

大学での基本的な C++ の講義でこれを行う必要があるため、明確にするために、許可されていれば STL を使用していたでしょう。

問題: "shape3d" という名前のクラスがあり、そこからクラス "cube" と "sphere" を派生させました。ここで、「shape3d_stack」を実装する必要があります。これは、「cube」および「sphere」タイプのオブジェクトを保持できることを意味します。これには配列を使用しましたが、int のスタックでこれを実行しようとすると、非常にうまく機能しました。私はそれを次のようにしようとしました:

shape3d_stack.cpp:

残念ながら、コンパイラは次のように教えてくれます。

これは、私自身が引き起こしたある種の本当に醜い設計エラーに違いないと思います。では、スタックで「shape3d」から派生したすべての種類のオブジェクトを使用する正しい方法はどのようになるでしょうか?