Bonjour
Je fais mes premiers pas en POO C++ et j'essaie de faire des petits exercices.
J'ai le code suivant dont le constructeur refuse de s'exécuter si je ne donne aucun paramètre au moment de l'instanciation de mon objet c1 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 #include<iostream> using namespace std; class calculator { int _number1; int _number2; char _symbol; public : void add() { cout<<"The sum is "<<_number1 + _number2 << endl ; } void subtract() { cout<<"The subtraction is "<<_number1 - _number2 << endl ; } void multiply() { cout<<"The multiplication is "<<_number1 * _number2 << endl ; } void divide() { cout<<"The division is "<<_number1 / _number2 << endl ; } calculator () { cout << "Entrée dans calculator's constructor " << endl; int a; int b; char sym; cout << "Entrez 1er nombre : " << endl; cin >> a; cout << "Entrez second nombre : " << endl; cin >> b; cout << "Quelle opération voulez vous faire ? +, -, *, / ? " << endl; cin >> sym; _number1 = a; _number2 = b; _symbol = sym; switch(_symbol){ case '+' : add(); break; case '-' : subtract(); break; case '*' : multiply(); break; case '/' : divide(); break; default : cout<< "Wrong operator" << endl; } cout << "\n\nSortie de calculator's constructor " << endl; } }; int main() { cout << "Entrée dans main " << endl; calculator c1(); cout << "Après instanciation de c1 " << endl; }
Par contre, si je modifie le code de manière à ce que mon constructeur ai besoin d'un paramètre, il s'exécute correctement :
Je ne vois pas pourquoi j'ai absolument besoin d'un paramètre au minimum ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 #include<iostream> using namespace std; class calculator { int _number1; int _number2; char _symbol; public : void add() { cout<<"The sum is "<<_number1 + _number2 << endl ; } void subtract() { cout<<"The subtraction is "<<_number1 - _number2 << endl ; } void multiply() { cout<<"The multiplication is "<<_number1 * _number2 << endl ; } void divide() { cout<<"The division is "<<_number1 / _number2 << endl ; } calculator () { cout << "Entrée dans calculator's constructor " << endl; int a; int b; char sym; cout << "Entrez 1er nombre : " << endl; cin >> a; cout << "Entrez second nombre : " << endl; cin >> b; cout << "Quelle opération voulez vous faire ? +, -, *, / ? " << endl; cin >> sym; _number1 = a; _number2 = b; _symbol = sym; switch(_symbol){ case '+' : add(); break; case '-' : subtract(); break; case '*' : multiply(); break; case '/' : divide(); break; default : cout<< "Wrong operator" << endl; } cout << "\n\nSortie de calculator's constructor " << endl; } }; int main() { cout << "Entrée dans main " << endl; calculator c1(); cout << "Après instanciation de c1 " << endl; }
Partager