0

プログラムで奇妙な問題が発生しました。したがって、ヘッダーには次のようなものがあります。

#ifndef SET1_INCLUDED
#define SET1_INCLUDED

#include <iostream>
using namespace std;

typedef std::string ItemType;
class Set1{
  public:
  ------some public constructor and method in here-------
  private:
  ItemType setMember[100];
}

Set1.cppファイルの関数の1つの部分で、次のようなものが得られました。

if (setMember[i] == "foo") {exist = true;}

この場合、「タイプ'ItemType'の左側のオペランドをとる演算子が見つかりません」というエラーメッセージが表示されました。ただし、typedefのstd :: stringをintまたはunsignedlongに変更し、「foo」を乱数に変更すると、コードは完全に機能します。なにか提案を?どうも

4

2 に答える 2

8

ヘッダーファイルがありません。これは、プログラムにすべてのグローバル定義が表示されて<string>いないことを意味します。operator ==これはおそらくあなたの問題の場合です。

これを修正するには、次の行を追加してみてください。

#include <string>

お役に立てれば!

于 2013-01-20T20:58:52.830 に答える
1

相対型と演算子をスコープに入れるには、文字列ヘッダー ファイルを含める必要があります。

#include <string>

注: ヘッダー ファイルの std 名前空間からすべてを取得するのは、コーディング方法としては不適切です。

//using namespace std;
于 2013-01-20T21:04:48.030 に答える