如果标题不正确,对不起,我不知道该怎么命名。
我有一个类名:
class Name {
char * name;
public:
Name(const char * n){
name = new char[strlen(n)+1];
strcpy(name,n);
}
Name& operator=(const Name& n){
name = new char[strlen(n.name)+1];
strcpy(name, n.name);
return *this;
}
Name(const Name& n){
*this = n;
}
};
还有一个类Person,它应该将Name对象作为其成员。我该怎么做?我在想这样的代码:
class Person{
double height;
Name name;
public:
Person(double h, const Name& n){
height = h;
name = n;
}
};
但是只有这种方法似乎有效:
class Person{
double height;
Name * name;
public:
Person(double h, const Name & n){
height = h;
name = new Name(n);
}
};
这样做是正确的吗?为什么我不能像一开始想的那样做呢?谢谢。