[解決済み】"テンプレートパラメータなしで使用"
2022-02-14 07:35:22
質問内容
以前にも同じような質問があったことは承知していますが、それらをいくつか読んでも、まだどこが間違っているのかわかりません。 プロトタイプを定義から分離せずに単純にクラスを書くと、すべてがうまくいきます。 問題は、以下のようにプロトタイプと定義を分離したときに起こります。
template<class T> class VisitedSet {
public:
VisitedSet();
int getSize();
void addSolution(const T& soln);
void evaluate();
private:
vector<T> vec;
int iteration;
};
そして、このエラーを出す定義の例として。
int VisitedSet::getSize() {
return vec.size();
今までテンプレート化されたクラスを作ったことがないので、ここでの問題は些細なことですがご容赦ください。
どのように解決するのですか?
VisitedSet
はクラスではなくテンプレートです。
VisitedSet
のようなネストした名前指定子で
VisitedSet::getSize()
. の宣言を指定したのと同じように
class VisitedSet<T>
に対して、すべての
class T
の定義を指定する必要があります。
VisitedSet<T>::getSize()
すべての
class T
:
template<class T>
int VisitedSet<T>::getSize() {
// ^^^
return vec.size();
}
しかし、テンプレートの名前はクラスのように使用することができます。 内の をテンプレート定義に追加します。
template<class T>
struct Example {
Example* parent;
T x, y;
};
この場合
Example
は
Example<T>
.
関連
-
[解決済み] error: 'if' の前に unqualified-id を期待した。
-
[解決済み】C++の変数はイニシャライザーを持っているが、不完全な型?
-
[解決済み】fpermissiveフラグは何をするのですか?
-
[解決済み] [Solved] インクルードファイルが開けません。'stdio.h' - Visual Studio Community 2017 - C++ Error
-
[解決済み】なぜ、サイズ8の初期化されていない値を使用するのでしょうか?
-
[解決済み] static_cast, dynamic_cast, const_cast, reinterpret_cast はいつ使うべきですか?
-
[解決済み] template "と "typename "キーワードはどこに、なぜ入れなければならないのですか?
-
[解決済み] C++テンプレート関数定義の.CPPファイルへの格納
-
[解決済み】テンプレートのテンプレート・パラメーターの使い方は?
-
[解決済み] C++の静的コンストラクタ?プライベートな静的オブジェクトを初期化する必要があります
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] エラーが発生する。ISO C++は型を持たない宣言を禁じています。
-
[解決済み] error: 'ostream' does not name a type.
-
[解決済み】C++のGetlineの問題(オーバーロードされた関数 "getline "のインスタンスがない
-
[解決済み】C++ 式はポインタからオブジェクトへの型を持っている必要があります。
-
[解決済み】変数 '' を抽象型 '' と宣言できない。
-
[解決済み] 非静的データメンバの無効な使用
-
[解決済み】システムが指定されたファイルを見つけられませんでした。
-
[解決済み】浮動小数点数の乱数生成
-
[解決済み】なぜ、サイズ8の初期化されていない値を使用するのでしょうか?
-
[解決済み】'std::cout'への未定義の参照