1. ホーム
  2. c++

[解決済み] C++ テンプレート - エラー: '<' トークンの前にイニシャライザーが必要です。

2022-01-28 05:57:33

質問

私はテンプレートについて学ぼうとしています。私は自分のクラスペアが任意の型の2つのオブジェクトを保持できるようにしたいと思っています。私は今obj1のためのアクセサ関数を提供したいだけです。しかし、私はコンパイルしようとすると、次のエラーが発生します。

error: expected initializer before '<' token
    T1 pair<T1,T2>::getObj1()

私のコードは

#include <iostream>
#include <stdio.h>
#include <string.h>

using namespace std;

template <class T1, class T2>
class pair
{
  public:
    pair(const T1& t1, const T2& t2) : obj1(t1), obj2(t2){};

    T1 getObj1();

  private:
    T1 obj1;
    T2 obj2;
};

template <class T1, class T2>
T1 pair<T1,T2>::getObj1()
{
    return obj1;
}



int main()
{
    return 0;
}

解決方法は?

ペアは標準のクラス名で using namespace std となり、衝突してしまいます。

いくつかの解決策.

  • クラス名を他のものに変更する。
  • usingステートメントを使用しない