問題タブ [abstract]

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 投票する
9 に答える
308 参照

class - すべての抽象クラスに AbstractFoo という名前を付ける必要がありますか

すべての抽象クラスの名前に「Abstract」という接頭辞が付いていることを確認することをお勧めしますか?

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

c++ - C ++コンストラクターでポリモーフィックな動作を取得するにはどうすればよいですか?

私はこのようになりたい基本クラスを持っています:

重要なのは、派生クラスを強制的にオーバーライドIし、各オブジェクトが構築されるときに強制的に呼び出されるようにすることです。これはいくつかの簿記を行うために使用され、どのタイプのオブジェクトが構築されているかを知る必要があります(ただし、それ以外の場合は、現在のオブジェクトを基本クラスとして扱います)。

C ++ではコンストラクターから抽象仮想関数を呼び出せないため、これは機能しません。

同じ効果を得る方法はありますか?


このリンクに基づくと、答えは私が欲しいものを手に入れる方法がないということのように思われます。しかしそれが言うことは:

簡単な答えは:いいえ。基本クラスは、それがどのクラスから派生したかについては何も知りません。それも良いことです。[...]つまり、コンストラクターDerived1 :: Derived1が開始するまで、オブジェクトは正式にはDerived1のインスタンスにはなりません。

しかし、私の場合、それが何であるかを知りたくはありません、それがどうなるを知りたくありません。実際、ユーザーが(事後に)クラスにマップできる限り、何が返されるかは気にしません。だから私はリターンポインタのようなものを使ってそれを回避することさえできた。

(今、そのリンクを読むことに戻ります)

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

c# - ジェネリックの質問

私はジェネリッククラスを持っています

signalType は抽象クラスです。動的フィールドを宣言して格納するにはどうすればよいですか? 次のコードは、Decoder が非抽象型ジェネリックでなければならないというコンパイル エラーをスローします。

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

c# - 抽象的な読み取り専用プロパティをオーバーライドして、読み取り/書き込みプロパティにします

基本抽象クラスの特定のプロパティに C# ゲッターの実装のみを強制したいと考えています。派生クラスは、必要に応じて、静的にバインドされた型をパブリックに使用するために、そのプロパティのセッターも提供する場合があります。

次の抽象クラスがあるとします。

セッターも実装する派生クラスが必要な場合は、素朴に試すことができます。

しかし、存在しないセッターをオーバーライドしようとすると、構文エラーが発生します。ベースセッターをプライベートと宣言するなど、他の方法を試しましたが、それを妨げるあらゆる種類のエラーに出くわしました。基本クラスの契約に違反しないため、それを行う方法が必要です。

ちなみに、それはインターフェースで行うことができますが、私は本当にそのデフォルトの実装が必要です.

私はそのような状況に頻繁に出くわしました。それを行うための隠された C# 構文トリックがあるかどうか疑問に思っていました。

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

c++ - 抽象テンプレート基本クラスへのポインタ?

私はこれを理解することはできません。次の抽象テンプレート基本クラスが必要です。

ここで、Dendriteの正確な使用法を指定するこれから派生します。

今問題。

後で要素をプッシュして指定したい、特定のタイプのない基本クラスへのポインターのベクトルを作成するにはどうすればよいですか?何かのようなもの:

これは可能ですか、それともここで非常に基本的なものが欠けていますか?

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

java - 抽象メソッドを使ったグルーヴィーなモック

Parameter という Java オブジェクトがあり、groovy を使用してそれをモックしようとしています。パラメータは、1 つの抽象メソッドを持つ抽象クラスです。getName() という非抽象メソッドもあります。Groovyで次のようにモックしようとしています:

しかし、抽象メソッドを実装していないため、実行時エラーが発生します。モックを作成しようとしている場合、なぜ抽象メソッドを実装する必要があるのでしょうか?

ありがとう、ジェフ

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

c++ - 最適なオペレーティング システムの抽象化は?

C/C++ で標準のオペレーティング システム機能を抽象化する何かを探しています: スレッドのスパン/キル、メッセージの送受信、タイマーの開始/停止、おそらくメモリ管理です。独自のバッファ プール。

Linux/windows で開発および単体テストを行い、さまざまなターゲット O/S (組み込みシステム: eCos、FreeRTOS、VxWorks など) 用に c/c++ コードを再コンパイルできるようにしたいと考えています。

できるだけ「軽量」なものが最適です。うまくいけば、単なるライブラリであり、マクロのコレクションでさえあるかもしれません。

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

c++ - C++ - 派生クラスの「メンバー関数が宣言されていません」

VS2008 がこのコンパイル エラーをスローしている MSVC++ 2008 に問題があります。

さて、私を混乱させているのは、 render() が定義されているが、継承されたクラスであるということです。

クラス定義は次のように機能します。

したがって、SpriteBase.h の簡素化されたバージョンは次のとおりです。

PlayerSpriteBase.h は次のとおりです。

最後に、PlayerSpriteKasua.h は次のとおりです。

まだメンバーがいないことはわかっていますが、それは単純にメンバーを追加できなかったからです。PlayerSpriteBase についても同様です。それに入る他のものが残っています。

PlayerSpriteKasua.cpp のコードは次のとおりです。

と入力するとvoid PlayerSpriteKasua::、Intellisense は PlayerSpriteBase と SpriteBase のすべてのメンバーを一覧表示してポップアップしますが、コンパイル時に上記のように失敗します。

このエラーが発生する特定の理由はありますか?

PlayerSpriteBase.cpp は空で、まだ何も入っていません。

SpriteBase.cpp には SpriteBase の多くの関数定義があり、PlayerSpriteKasua.cpp と同じ形式を使用します。

は一例です。

0 投票する
9 に答える
1030 参照

c - セミコロンなしで「C」ステートメントを実行することは可能ですか?

セミコロンなしで「C」ステートメントを実行する例を投稿してください(;)

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

wcf - 抽象DataMember配列を使用したWCFDataContract

このシナリオを機能させることはできません。これがパターンです-

私は、KnownTypeまたはKnownServiceTypeを使用して、実質的にすべてに注釈を付けようとしましたが、役に立ちませんでした。

BaseTを抽象化すると、逆シリアル化エラーが発生します'抽象クラスをインスタンス化できません'。BaseTを具体的にすると、逆シリアル化エラーは発生しません。代わりに、それをChildTにキャストしようとすると、「タイプ'BaseT[]'のオブジェクトをタイプ'ChildT[]'にキャストできなくなります。