2012-07-11 70 views
-1

我試圖創建一個允許用戶設置成員數組變量的成員函數。錯誤:不同類型的'char'賦予'char [11]'

我一直在到處找,但我無法找到我的代碼的問題,

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

class Employee 
{ 
    protected: 
     string name; 
     char ssn[11]; 
     char id[5]; 
     char hired[8]; 
    public: 
     Employee(char ssn, char id, char hired);  //Constructor 
     Employee(string name); 
     ~Employee();  //Destructor 
     void setName(string n) { n = name; } 
     void setSSN(char i) { ssn = i; } 

}; 

int main() 
{ 
return 0; 
} 
+4

'ssn = i;'您將一個字符分配給11個字符的數組。我不知道你爲什麼在其他地方使用'std :: string',但不是爲了這些。 – chris 2012-07-11 20:39:02

+0

void setName(string n){n = name; } //這裏沒有使用n。你應該交換嗎? – RiaD 2012-07-11 20:51:24

+1

爲了增加@chris所說的內容,您不能在內聯初始化之外首先分配數組。 – 2012-07-11 20:59:39

回答

0

讓我們看看你的setSSN功能:

void setSSN(char i) { ssn = i; } 

SNN,其中最有可能意味着社會安全號碼,不僅包含11位數字,對嗎?那麼爲什麼setSSN只能輸入一個字符(數字)(char i)?因此,setSSN函數應該採用包含員工的SSN的字符串,並且該字符串應該與Employee類的ssn成員變量具有相同的風格,以便讓您可以在函數主體中爲另一個字符串變量指定一個字符串變量。如果您已經熟悉C++標準庫的string類,則應該使用該類來處理所有字符串存儲和操作。

+0

它應該是12雖然包括空終止字符:)我喜歡你的建議使用std :: string。 – Mahesh 2012-07-11 20:52:49

+0

@Mahesh我不是美國人,不知道SSN中有多少個角色,11,10或其他數量:P – 2012-07-11 20:54:58

相關問題