Если вы находитесь на удаленной ветке (называемой feature-branch
), клонированной из Золотого репозитория (golden_repo_name
), то вот техника, чтобы раздавить ваши коммиты в одну:
git checkout golden_repo_name
git checkout -b dev-branch
git merge --squash feature-branch
git commit -m "My feature complete"
git push origin dev-branch
Вы не можете передать объект Animal
в функцию производного класса, потому что вы не можете создать объект класса Animal
и все, это абстрактный класс. Если класс содержит по крайней мере одну чистую виртуальную функцию (speak()
), то класс становится абстрактным классом, и вы не можете создавать какие-либо его объекты. Однако вы можете создавать указатели или ссылки и передавать их им. Вы можете передать указатель Animal
или ссылку на метод.
void speakTo(Animal* animal)
{
animal->speak();
}
int main()
{
Animal *ptr = new Dog();
speakTo(ptr);
delete ptr; //Don't Forget to do this whenever you use new()
return 0;
}
Вам нужно будет передать ссылку вместо копии:
void speakTo(Animal& animal) {
animal.speak();
}