本文整理汇总了C++中Usuario::compra方法的典型用法代码示例。如果您正苦于以下问题:C++ Usuario::compra方法的具体用法?C++ Usuario::compra怎么用?C++ Usuario::compra使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Usuario
的用法示例。
在下文中一共展示了Usuario::compra方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SinStock
//Definición de los métodos de la clase Pedido
Pedido::Pedido (Usuario_Pedido& up, Pedido_Articulo& pa, Usuario& u, const Tarjeta& t, const Fecha& f) : num_(N_pedidos + 1), tarjeta_(&t), fecha_(f), total_(0) {
if (t.caducidad() < f) throw Tarjeta::Caducada(t.caducidad());
if (&u != t.titular()) throw Pedido::Impostor(u);
Fecha actual = Fecha();
for(auto& i : u.compra()) {
if (LibroDigital* ld = dynamic_cast<LibroDigital*> (i.first)) {
if (ld->f_expir() < actual)
u.compra(*ld, 0);
}
else {
ArticuloAlmacenable* pa = dynamic_cast<ArticuloAlmacenable*> (i.first);
if (i.second > pa->stock()){
Articulo& aux = *(i.first);
vaciar_carrito(u);
throw Pedido::SinStock(aux);
}
}
}
if (u.n_articulos() == 0) throw Pedido::Vacio(u);
for(auto& i : u.compra()) {
if (ArticuloAlmacenable* aa = dynamic_cast<ArticuloAlmacenable*> (i.first)){
aa->stock() = aa->stock() - 1;
}
pa.pedir (*this, *(i.first), (i.first)->precio(), i.second);
total_ += (i.first)->precio() * i.second;
u.compra (*(i.first), 0);
}
up.asocia(u, *this);
N_pedidos++;
}
示例2: vaciar_carrito
void Pedido::vaciar_carrito(Usuario& u) {
for(auto& i: u.compra())
u.compra (*(i.first), 0);
}