2015-10-31 110 views
0
#include <iostream> 
using namespace std; 

struct Person { 
    string first_name; 
    string last_name; 
}; 

int main() { 
    Person a; 
    a.first_name = "foo"; 
    a.last_name = "bar"; 
    cout << a.first_name << " " << a.last_name; 
    return 0; 
} 

給出錯誤:打印結構成員

binary '<<' : no operator found which takes a right-hand operand of 
type 'std::string' (or there is no acceptable conversion) 

爲什麼會發生?

+2

'的#include ' – 101010

+2

你缺少的#include''。 –

回答

0

正如其他人在評論中提到,你需要包括string

#include <iostream> 
#include <string> 
using namespace std; 

struct Person { 
    string first_name; 
    string last_name; 
}; 

int main() { 
    Person a; 
    a.first_name = "foo"; 
    a.last_name = "bar"; 
    cout << a.first_name << " " << a.last_name; 
    return 0; 
} 
+0

是的,我明白我需要包括它,但爲什麼?字符串不包括。 – karaxuna

+1

@karaxuna不,它不是,''中只有一個前向聲明。 –

+0

@πάνταῥεῖ謝謝^ _ ^ – karaxuna