問題タブ [class-template]

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

c++ - テンプレート化されたクラスで別の仮想メソッドを呼び出す仮想メソッド

このトピックに関するさまざまな質問を読んできましたが、探しているものに完全に答える質問を見つけることができませんでした。私が持っているコードのパターンは次のとおりです。

実行すると、次のようになります。

bar の呼び出しで実行時ディスパッチが機能しないのはなぜですか? Derived で foo をオーバーロードすると、派生バージョンの foo が呼び出されますが、bar の動的ディスパッチを実行できないのはなぜですか?

私は既存のコードで作業しているので、ここではクラスの基本構造を変更したくありません。通話を機能させる方法を見つけるか、機能しない理由を理解したいと思っています。ここで他の質問を読むことに基づいて、さまざまなことを試しましたが、すべて役に立ちませんでした。

0 投票する
0 に答える
287 参照

c++ - 内部テンプレート クラスの特殊化から外部テンプレート クラスの typedef にアクセスする

次のコードを検討してください

コメントのエラーは g++ のバグ (4.8.2) ではないかと強く疑っています。

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

c++ - クラス テンプレートの相互作用

私の問題に対する答えは、以前に作成したスレッドの 1 つにあると確信しています。特に、"template" と "typename" キーワードをどこに、なぜ入れなければならないのでしょうか? テンプレート/タイプ名の明確化に関する優れた説明があります。ただし、相互に対話するクラステンプレートであるコードに概念を実際に拡張できないため、途方に暮れています。

このスレッドでは、コードで発生したのと同じエラーが表示されると思います。T が実際に必要な typename テンプレートであるのA<B>に対し、B がクラスである場所を使用して typedef を定義するのはなぜですか。A<T>

それにもかかわらず、私はこれらのオプションを試してみましたが、役に立ちませんでした。これがコードです。ご協力ありがとうございました。

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

c++ - C++: クラスがテンプレート化されているときに、デフォルトのコンストラクターでインスタンス化した後、入力をオブジェクトに cin する方法

序章:

タイトルがややこしかったり曖昧だったりしたらすみません。私が持っている質問が検索可能な用語に分解されていないように見えるため、私の問題についてインターネット検索を行うのは非常に困難でした. また、これは Stackoverflow に関する私の最初の投稿です。質問を投稿するという従来の考え方から外れている場合は、ご容赦ください。賢明にフォーマットできるように最善を尽くします。

そうは言っても、私がやろうとしていることに入りましょう:

私は、講師から与えられた課題に取り組んでいる大学の学生です。ベクトル用のクラスを作成しています (つまり、データ型のベクトルではなく、数学的に言えばベクトルです)。このクラスは、ベクトルの x コンポーネント用とベクトルの y コンポーネント用の 2 つの異なるテンプレート データ型のクラス テンプレートになります。これは単純なクラスで、ベクトルの大きさと方向 (ラジアン単位) を返します。フレンド関数としてオーバーロードされた入力演算子と出力演算子、およびいくつかのコンストラクターもあります。私は動的メモリを扱っていないので、ワームの缶全体を脇に置くことができます。

これが私が抱えている問題です:

私の問題は、cin を実行できず、方向 () と大きさ () を出力できないことです。コンパイラは非常に長いエラーを出しますが、基本的には

エラー C2678: バイナリ '>>' : 型 'std::istream' の左側のオペランドを取る演算子が見つかりません (または、受け入れ可能な変換がありません)

ただし、これを行う場合:

すべてが世界に満足しています。したがって、私の質問は、どうすればこれを修正できますか? デフォルトのコンストラクターでインスタンス化した後に cin を使用したいのですが、方向 () と大きさ () を出力したいと思います。すべてのヘッダー宣言とその他すべてを正しく行い、クラスの書き方が間違っていると考えてください。これは次のとおりです。

私のクラスファイル:

それだけです。含める必要がある追加情報がある場合はお知らせください。

ありがとう。

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

c++ - C++ クラス テンプレートの問題

プログラムで「未解決の外部シンボル」というエラーが表示されます。知っていることはすべて試しましたが、解決できませんでした。クラステンプレートを使用した後、このエラーが発生し始めました。

FileHandler クラス ヘッダーは次のとおりです:-

ファイル ハンドラー クラスの実装

ファイルハンドラークラスでメソッドを呼び出すコードは次のとおりです

以下は、私が得るエラーのスクリーンショットです。

ここに画像の説明を入力

このエラーを修正するにはどうすればよいですか?