2017-09-09 65 views
0

我工作的一個項目,我有三個頭文件的每個定義的一些功能的獨立結構,用於訪問變量,這是學生結構的一個例子:字符串類型的文件

#include<string.h> 
//using namespace std; 
struct student 
{ 
    int studentId; 
    string fname; 
    string lname; 
}; 
void SetId(student * stu,int id) 
{ 
    stu->studentId=id; 
} 
void SetFirstName(student * stu,string name) 
{ 
    stu->fname=name;  
} 
void SetLastName(student * stu,string name) 
{ 
    stu->lname=name; 
} 
int GetId(student * stu) 
{ 
    return stu->studentId; 
} 
string GetFirstName(student * stu) 
{ 
    return stu->fname; 
} 
string GetLastName(student * stu) 
{ 
    return stu->lname; 
} 

當我編譯該文件我得到兩個錯誤: 1. [錯誤]未知類型名「字符串」 2. [錯誤]未知類型名「學生」

+1

'#include '包含C庫的一個頭文件,應該在C++中包含爲''。 –

回答

1

更換stringstd::string

你已經做了好事,擺脫了侵入using namespace std;

最後,爲什麼不讓student類本身的「全局函數」成員呢?那你就不需要那個指針了。 C++不是C你知道的。

0

由於您使用的是C++,因此您應該避免包含.h標頭。 C++中的<string>頭文件用於處理字符串,因此請使用它。

然後,您已評論using namespace std這是一個很好的做法。請參閱here爲什麼。但是現在您需要指定哪些名稱空間字符串對象屬於,因此需要明確寫入std::string而不是string

最後,我引用@Bathsheba的答案。你應該創建一個班級學生。