我有兩個動態分配的類對象 - 學生和工作人員數組。當用戶輸入年齡時,我希望根據年齡更新學生陣列或職員陣列的元素。 但我下面的代碼不起作用。一旦分配給學生,變量人員不會被重新分配給工作人員。無論我輸入的年齡如何,我輸入的所有數據都只會發放給學生。我的代碼有什麼問題?我怎麼能有一個變量,並根據條件檢查分配一個或其他數組元素?更改動態分配數組中元素的值
#include <iostream>
using namespace std;
int main()
{
class info
{
public:
int unique_id;
char* hair_color;
int height;
int weight;
};
class info* student;
student = new info[10];
class info* staff;
staff = new info[10];
for (int i=0; i<10;i++)
{
class info& person = student[i];
int age ;
cout<< "enter age"<<endl;
cin >> age;
if(age > 18)
{
person = staff[i]; // This assignment doesn't work ??
}
cout<< "enter unique_id"<<endl;
cin >> person.unique_id;
cout<< "enter height"<<endl;
cin >> person.height;
cout<< "enter weight"<<endl;
cin >> person.weight;
}
cout<<" Student "<<student[0].unique_id<<" "<<student[0].height<<"\" "<<student[0].weight<<endl;
cout<<" Staff "<<staff[0].unique_id<<" "<<staff[0].height<<"\" "<<staff[0].weight<<endl;
return 0;
}
看起來像C++代碼。如果是這樣,請將C++標籤添加到您的問題。謝謝! –
如果你有一個引用'int&rx = x;'如果你給這個引用賦新值,例如'rx = 5;',你認爲應該發生什麼?在你認爲分配不起作用的行中發生了什麼? –
你不能[重新安置一個參考。](https://stackoverflow.com/questions/7713266/how-can-i-change-the-variable-to-which-ac-reference-refers)這會導致問題@ ArtemyVysotsky暗示。 – user4581301