#include<iostream>
using namespace std;
class Animal
{
private:
string name;
public:
Animal()
{
cout << "Animal created" << endl;
}
Animal(const Animal& other):
name(other.name){
cout << "Animal created by copying" << endl;
}
~Animal()
{
cout << "Animal destroyed" << endl;
}
void setName(string name)
{
this->name = name;
}
void speak()const{
cout << "My name is: " << name << endl;
}
};
Animal createAnimal()
{
Animal a;
a.setName("Bertia");
return a;
}
int main()
{
Animal a_= createAnimal();
a_.speak();
return 0;
}
Я получил выход:C++ dought полностью Начинающие
Animal created
My name is: Bertia
Animal destroyed
«звериного созданный» конструктор называется здесь, для которого объект а или а_, а также для деструктора. Является ли это для вызываемого, где мы определяем Animal a или когда мы вызываем createAnimal() для a_ И то же самое относится к деструктору, когда он вызывается после окончания основной функции для a_ или после конца функции createAnimal() для a?
Мы здесь не для публикации контента для начинающих книги в ответах, которые вышли бы слишком широким. Пожалуйста, просмотрите [The Definitive C++ Book Guide and List] (http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list) из FAQ и выберите его. –