В зависимости от Вашего использования существует несколько опций, с которыми Вы могли пойти сюда:
Делают копию каждым разом, когда Вы создаете животное:
class AnimalLister
{
public:
Animal getNewAnimal()
{
return Animal();
}
};
int main() {
AnimalLister al;
Animal a1 = al.getNewAnimal();
Animal a2 = al.getNewAnimal();
}
Профессионалы:
Недостатки:
Animal
иметь конструктора копии хорошего поведения. Animal
larg и комплекс, хотя оптимизация возвращаемого значения может облегчить это во многих ситуациях. Animal
, как они будут , резал вниз к плоскости Animal
, теряя все дополнительные данные в подклассе. Возврат shared_ptr
:
class AnimalLister
{
public:
shared_ptr getNewAnimal()
{
return new Animal();
}
};
int main() {
AnimalLister al;
shared_ptr a1 = al.getNewAnimal();
shared_ptr a2 = al.getNewAnimal();
}
Профессионалы:
Animal
для определения конструктора копии. Недостатки:
Дорожка весь Animal
выделения в [1 110]
class AnimalLister
{
vector Animals;
public:
Animal *getNewAnimal()
{
Animals.push_back(NULL);
Animals.back() = new Animal();
return Animals.back();
}
~AnimalLister()
{
for(vector::iterator iAnimal = Animals.begin(); iAnimal != Animals.end(); ++iAnimal)
delete *iAnimal;
}
};
int main() {
AnimalLister al;
Animal *a1 = al.getNewAnimal();
Animal *a2 = al.getNewAnimal();
} // All the animals get deleted when al goes out of scope.
Профессионалы:
Animal
с на сингле delete
. Недостатки:
если ваше значение представляет собой чистый текст (например, 'test'), вы также можете использовать метод text (). вроде этого:
$('div.total-title').text('test');
в любом случае, по поводу проблемы, которую вы разделяете, я думаю, вы могли бы вызвать код JavaScript до того, как HTML-код для DIV будет отправлен в браузер. убедитесь, что вы вызываете строку jQuery в теге