Другие решили прямую проблему, о которой вы спрашивали.Если вы меня потворствуете, позвольте мне обратиться к одной из проблем.
Вот то, с чего вы начали.
void main()
{
// You could combine these two lines like this:
// Human *me = new Human(27,"Kostas Loupasakis",true);
Human *me;
me = new Human(27,"Kostas Loupasakis",true);
cout << "My name is "+me->getName()+" and I am "+me->getAge()+" years old";
}
Я не могу говорить с AS3, но в Java и C # выесть сборщик мусора для очистки выделенной памяти.В C ++ такого зверя нет, поэтому вы должны сами очистить память следующим образом.
void main()
{
Human *me = new Human(27,"Kostas Loupasakis",true);
cout << "My name is "+me->getName()+" and I am "+me->getAge()+" years old";
delete me;
}
При вызове new
выделяется объект Human
в куче, а delete
освобождаетпамять, когда вы закончили с этим.Вот лучший способ сделать это.
void main()
{
Human me(27,"Kostas Loupasakis",true);
cout << "My name is "+me.getName()+" and I am "+me.getAge()+" years old";
}
В этом случае пространство для объекта Human
резервируется в стеке, а не в куче.Таким образом, пространство автоматически восстанавливается при выходе из функции.Кроме того, вы можете использовать нотацию .
вместо нотации ->
, поскольку вы имеете дело с объектом, а не с указателем.
Надеюсь, это поможет.