Извините, если заголовок неправильный, я не знаю, как его еще назвать.Экземпляр объекта C++ как член класса
У меня есть класс Название:
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, который должен иметь имя объекта, как это член. Как я могу это сделать? Я думал, что-то вроде этого:
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);
}
};
Является ли это правильный способ сделать это, и почему я не могу сделать это, как я думал, что в первое место? Благодаря
PS. В конструкторе копирования есть утечка памяти. Найдите копию и замените идиому, чтобы помочь ей правильно. –