这是我的伪代码:
cart += &product1;
现在我要做的就是将所有类型的产品放入购物车中
void operator+=(Produs * prod){
Produs ** copie = new Produs*[this->n];
for (int i = 0; i < n; i++)
memcpy(&copie[i], &produse[i], 4);
this->n += 1;
this->produse = new Produs*[this->n];
for (int i = 0; i < this->n - 1; i++)
memcpy(&produse[i], &copie[i], 4);
memcpy(&produse[n - 1], &prod, sizeof(copie[0]));
}
void operator+=(ProdusDiscount * prod){
Produs ** copie = new Produs*[this->n];
for (int i = 0; i < n; i++)
memcpy(&copie[i], &produse[i], 4);
this->n += 1;
this->produse = new Produs*[this->n];
for (int i = 0; i < this->n - 1; i++)
memcpy(&produse[i], &copie[i], 4);
memcpy(&produse[n - 1], &prod, sizeof(copie[0]));
}
(其中product1可以是Product或ProductDiscount类型)
我是通过重载+ =运算符来实现的,这里是代码:
[root@glczwe-sp230001 my.perlur.cz]# php artisan make:migration create_customers_table --create=customers
[root@glczwe-sp230001 my.perlur.cz]# php artisan list
[root@glczwe-sp230001 my.perlur.cz]#
现在,我想知道是否有另一种方法可以做到这一点。我还想知道当我使用memcpy时是否会产生内存泄漏,如果是这样,我该如何避免它。