考虑下面的类:试图创建对象的列表,运营商=在给我找麻烦
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