2016-06-08 1 views
0

Je me demandais pourquoi le résultat du code suivant est juste:imbriqué pour l'appel de boucles aux fonctions membres de la classe

Le constructeur a été appelé.

Le constructeur a été appelé. Pourquoi les invocations des fonctions membres de la classe (est-ce exact?) Ne font rien du tout? Je pensais que j'aurais récupéré la différence, le produit, la somme et le quotient pour les valeurs substituées par les boucles for imbriquées, mais ce n'est pas le cas.

#include <iostream> 

using namespace std; 

class math{ 

public: 

    float divide(int a, int b); 

    float multiply(int a, int b); 

    float add(int a, int b); 

    float subtract(int a, int b); 

    math(); 

}; 

math::math(void){ 

    cout << "The constructor has been called.\n"; 
} 

float math::divide(int a, int b){ 

    return a/b; 
} 

float math::multiply(int a, int b){ 

    return a*b; 

} 

float math::add(int a, int b){ 

    return a + b; 

} 

float math::subtract(int a, int b){ 

    return a - b; 

} 


int main(){ 

    math a; 
    math b; 

    for(int i = 10; i > 0; i--){ 

     for(int x = 10; x > 10; x--){ 
     cout << b.subtract(i, x) << endl; 
     cout << b.multiply(i, x) << endl; 
     cout << b.add(i, x) << endl; 
     cout << b.divide(i, x) << endl; 
     } 

    } 

return 0; 

} 
+1

regarder l'intérieur pour, 'for (int x = 10; x> 10; x -)' est que faute de frappe? –

+0

Votre fonction 'divide' ne fait pas ce que vous pensez. – Tim

+0

Est-ce que 10 est supérieur à 10? Non, ça ne l'est pas. Le corps de la boucle ne fonctionne donc pas. – immibis

Répondre

0

Vous avez juste une petite erreur dans votre intérieur pour la boucle:

for (int x = 10 ; x > 0 ; x--)