本文整理汇总了C++中Entier::toComplexe方法的典型用法代码示例。如果您正苦于以下问题:C++ Entier::toComplexe方法的具体用法?C++ Entier::toComplexe怎么用?C++ Entier::toComplexe使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Entier
的用法示例。
在下文中一共展示了Entier::toComplexe方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: execute
void CommandeDivision::execute()throw(LogMessage){
savePileAvtExe();
Constante* c1;
Constante* c2;
try{
c1 = _pileCourante->depiler();
c2 = _pileCourante->depiler();
if(typeid(*c1)==typeid(Expression) && typeid(*c2)==typeid(Expression)){
throw LogMessage("addition(): impossible d'appliquer un operateur sur 2 expressions",1);
}
if (typeid(*c1)==typeid(Expression)){
Expression* oldExpr=dynamic_cast<Expression*>(c1);
QString oldChaine=oldExpr->getExp();
QString newChaine;
if(typeid(*c2)!=typeid(Complexe)){
Nombre* nb=dynamic_cast<Nombre*>(c2);
newChaine = nb->toQString();
}
else{
Complexe* nb=dynamic_cast<Complexe*>(c2);
newChaine = nb->toQString();
}
oldChaine.remove(oldChaine.length()-1,1);
_pileCourante->empilerExpression(oldChaine.append(" "+newChaine+" "+'/'+'\''));
}
else if (typeid(*c2)==typeid(Expression)){
Expression* oldExpr=dynamic_cast<Expression*>(c2);
QString oldChaine=oldExpr->getExp();
QString newChaine;
if(typeid(*c1)!=typeid(Complexe)){
Nombre* nb=dynamic_cast<Nombre*>(c1);
newChaine = nb->toQString();
}
else{
Complexe* nb=dynamic_cast<Complexe*>(c1);
newChaine = nb->toQString();
}
oldChaine.remove(oldChaine.length()-1,1);
_pileCourante->empilerExpression(oldChaine.append(" "+newChaine+" "+'/'+'\''));
}
else{
if(_utilisateur->useComplexe()){
Complexe *co1;
Complexe *co2;
if(typeid(*c1)==typeid(Complexe))
co1 =dynamic_cast<Complexe*>(c1);
else if(typeid(*c1)==typeid(Entier)){
Entier* nb = dynamic_cast<Entier*>(c1);
co1 = nb->toComplexe();
}
else if(typeid(*c1)==typeid(Rationnel)){
Rationnel* nb = dynamic_cast<Rationnel*>(c1);
co1 = nb->toComplexe();
}
else if(typeid(*c1)==typeid(Reel)){
Reel* nb = dynamic_cast<Reel*>(c1);
co1 = nb->toComplexe();
}
if(typeid(*c2)==typeid(Complexe))
co2 = dynamic_cast<Complexe*>(c2);
else if(typeid(*c2)==typeid(Entier)){
Entier* nb = dynamic_cast<Entier*>(c2);
co2 = nb->toComplexe();
}
else if(typeid(*c2)==typeid(Rationnel)){
Rationnel* nb = dynamic_cast<Rationnel*>(c2);
co2 = nb->toComplexe();
}
else if(typeid(*c2)==typeid(Reel)){
Reel* nb = dynamic_cast<Reel*>(c2);
co2 = nb->toComplexe();
}
if(_utilisateur->useEntier()){
co1->attrToEntier();
co2->attrToEntier();
}
else if(_utilisateur->useRationnel()){
co1->attrToRationnel();
co2->attrToRationnel();
}
else if(_utilisateur->useReel()){
co1->attrToReel();
co2->attrToReel();
}
if(co1->getReel()==0 && co2->getImg()==0)
throw LogMessage("division(): impossible de diviser par 0",1);
else{
Complexe * res = *(co1)/co2;
_pileCourante->empilerConstante(res);
savePileApresExe();
}
}
//.........这里部分代码省略.........