Функция, вызываемая для суммирования или получения продукта, неверна - PullRequest
0 голосов
/ 12 февраля 2019

Когда я запускаю эту функцию, сумма или произведение в корне неверны.Я положил 2 и 3 для входов и получил как отрицательный миллион.То же самое относится и к продукту.Я собираюсь добавить еще один оператор cout после того, как я спрашиваю, какой расчет они хотят сделать, чтобы сделать его более естественным.

#include <iostream>
#include <math.h>
#include <string>
using namespace std;

class basicCalculator {
public:
int add(int x,int y) {
    return add1 + add2;
}

int multiply(int x,int y) {
    return multiply1*multiply2;
}

private:
int add1;
int add2;
int multiply1;
int multiply2;

};

int main() {
cout << "What mathematical action do you want?" << endl;
cout << "Press '1' to add two numbers, '2' to multiply two numbers" << endl;

int method;

cin >> method;

int value1;
cin >> value1;
int value2;
cin >> value2;

basicCalculator bc;

switch (method) {
case 1:
    cout << "The sum is " << bc.add(value1, value2) << endl;
    break;
case 2:
    cout << "The product is " << bc.multiply(value1, value2) << endl;
}

}

Ответы [ 2 ]

0 голосов
/ 12 февраля 2019

Фредди, в своих функциях вы должны использовать именованные параметры для своих расчетов.Таким образом, НЕ

int add(int x,int y) {
    return add1 + add2;
}

, а скорее

int add(int x,int y) {
    return x + y;
}

Та же проблема с умножением.

0 голосов
/ 12 февраля 2019

Внутри ваших add и multiply методов вы используете (неинициализированные) переменные-члены вместо фактических аргументов.

Попробуйте:

int add(int x, int y) { return x + y; }

Предложение: add и multiply вообще не нужно состояние объекта, они могут быть статическими, я не вижу никакой причины для всех объявленных вами переменных-членов.

...