考慮下面的類:試圖創建對象的列表,運營商=在給我找麻煩
class Subject
{
private:
char* name; // I must use char pointers, it's for school.
int grade;
public:
Subject() {
name = NULL;
grade = 0;
}
Subject(char *n, int g) {
name = new char[strlen(n)];
strcpy(name,n);
grade = g;
}
~Subject() {
delete name;
}
void operator=(const Subject &obj) {
strcpy(name, obj.name);
grade = obj.grade;
}
}
所以這是很簡單的數據結構,它的特殊功能。我是新的 重載操作員,所以它可能沒有正確實施。 現在,我試圖做的是製作一個簡單的這些對象數組。 考慮我的主要功能:
Subject *collection = new Subject[3];
char tmp[100];
int grade;
for(int i = 0 ; i < 3; i ++){
cin >> tmp;
cin >> grade;
collection[i] = new Subject(tmp,grade);
}
這將返回錯誤說沒有對手對於運營商=在...等。所以我知道當他們看到'='時他們不知道該怎麼做,所以我需要定義它。我該怎麼做。再次,關鍵是使主題對象的簡單列表(我不能用向量,它是學校)
'new Subject'返回一個指向動態分配的'Subject'的指針。 'new Subject [3]'是一個由3個'Subject'對象組成的數組(*不是* 3個'Subject *'的數組)。 – crashmstr
順便說一句,您的老師是否確信自己在教C++? – Chiel
「這是學校」是不得不學習現代C++的一個不好的理由。 – crashmstr