2011-09-22 36 views
1

我編寫了一個函數來搜索它的參數是否在給定的表retrieveb1.txt中.... optab表有兩列,其中參數只能位於第一列。 ..in的aviasm.h文件我寫了這個代碼....字符串作爲函數中的參數

class aviasm 
{ 
public: 
    aviasm(char *,char *); 
    ~aviasm(); 

    void crsymtab(); 
    bool in1(string); 

} 

在aviasm.cpp文件我寫...

bool aviasm::in1(string s) 
{ 
ifstream in("optab1.txt",ios::in);//opening the optab1.txt 
char c; 
string x,y; 
while((c=in.get())!=EOF) 
{ 
    in.putback(c);//putting back the charcter into stream 
    in>>x;//first field 
    in>>y; 
    if(x==s) 
     return true; 
    else 
     return false; 
} 
} 

,但我遇到了幾個編譯錯誤.. ..

'bool aviasm::in1(std::string)' : overloaded member function not found in 'aviasm' 
'aviasm::in1' : function does not take 1 arguments 
'syntax error : identifier 'string' 

...任何人都可以幫忙嗎?

+5

包括在.h文件中? –

+3

你用分號結束了類的定義嗎? – Mahesh

+0

此外,通常只需將只讀std :: string對象作爲const std :: string&'傳遞給函數即可。注意'const'和'&'(引用)。 –

回答

1

看來好像你要使用字符串,不正確的聲明,則需要在這個文件的頂部:

#include <string> 
using std::string; 
+1

他也可能發現用分號結束他的類定義很有幫助。 – Hugh

+0

@vaughn ....我沒有使用名稱空間std ....但它應該使用,即使我們不使用任何字符串函數 – avinash

相關問題