对不起,如果标题是错误的,我不知道如何命名它。
我有一个班级名称:
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);
}
};
这是正确的方法吗?为什么我不能像我一开始想的那样做?谢谢