Здравствуйте! Я новичок в программировании. Необходимо реализовать операции сложения, вычитания и тп. В main возникла проблема при объявлении объекта n1 " для класса Calculate не существует конструктор по умолчанию". Подскажите пожалуйста , где ошибка и что я сделал не так
#include <iostream>
using namespace std;
class Calculate {
private:
int x, y;
public:
Calculate(int a, int b) {
int x = a;
int y = b;
}
void setNum() {
cout << " Enter x:";
cin >> x;
cout << "Enter y: ";
cin >> y;
}
void showNum() {
cout << " x= " << x << endl;
cout << "y= " << y << endl;
}
void sum(int x, int y) {
int sum = x + y;
cout << "Sum = " << sum << endl;
}
void sub(int x, int y) {
int sub = x - y;
cout << "Sub = " << sub << endl;
}
void mul(int x, int y) {
int mul = x*y;
cout << "Mul = " << mul << endl;
}
void div(int x, int y) {
if (y == 0) {
cout << "Division by zero" << endl;
}
else {
int div = x / y;
cout << "Div = " << div << endl;
}
}
};
int main() {
int a, b;
Calculate n1;
n1.sum(a,b);
n1.sub(a,b);
n1.mul(a,b);
n1.div(a,b);
system("pause");
return 0;
}
А чего ты ожидал - у тебя объявлено
Calculate n1;
Когда ты сам в классе прописал, что у тебя только один конструктор и он соответствует
Calculate n1(10, 20)
В классе надо указать еще один конструктор без параметров (конструктор по умолчанию)
Calculate() {
x = 0;
y = 0;
}
Когда ты в классе в явном виде указываешь конструкторы, они в неявном виде уже не предусматриваются.
Поэтому у тебя должно быть следующее:
class Calculate {
private:
int x, y;
public:
Calculate() {
x = 0;
y = 0;
}
Calculate(int a, int b) {
x = a;
y = b;
}
/* тут твои методы */
};
Ну и вторая ОФИГЕННАЯ ошибка:
Ты в конструкторе присваиваешь значения x, y, которые являются локальными и после завершения работы конструктора сдохнут
Calculate(int a, int b) {
int x = a;
int y = b;
}
int x = a;
вот это объявление надо убрать, т.е. будет
x = a;
А то конструктор у тебя вообще своей функции не выполнял.
Т.е. было:
Calculate(int a, int b) {
int x = a;
int y = b;
}
стало:
Calculate(int a, int b) {
x = a;
y = b;
}
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Нужно организовать проверку элементов двумерного массива по диагонали с рандомных координат, по аналогии с ходом коня в шахматахВот часть...
You need to find appmodulcpp to view the source for the current call stack frame
Буду очень признателен, если коллеги подскажут ссылку или исходник, где можно подсмотреть, как правильно добираться до значений вектора...