How do I separate classes into multiple files? Here is my understanding so far:
- Create new class, and a ".h" and a ".cpp" file for it.
- You use
#include classname.h
in your main source file to import its contents. - The
Classname::Classname
at the beginning of the source file is a Scope Resolution Operator. - You can call functions from
main
by using the objects that you have declared.
I'm just confused about how to implement this in practice. I have created a working calculator program with all the classes in one source file:
#include <iostream>
using namespace std;
class Addition {
public:
float add(float x, float y) {
float sum;
sum = x + y;
return sum;
}
};
class Subtraction {
public:
float subtract(float x, float y) {
float dif;
dif = x - y;
return dif;
}
};
class Multiplication {
public:
float multiply(float x, float y) {
float prod;
prod = x * y;
return prod;
}
};
class Division {
public:
float divide(float x, float y) {
float quot;
quot = x / y;
return quot;
}
};
int op;
char cont;
int main() {
do {
cout << "Welcome to C++ Calculator v2!" << endl;
cout << "Select the number for which operation you want to use: " << endl;
cout << "1-Addition" << endl;
cout << "2-Subtraction" << endl;
cout << "3-Mutliplication" << endl;
cout << "4-Division" << endl;
cin >> op;
if (op == 1) {
float num1;
float num2;
Addition addObj;
cout << "You have chosen Addition!" << endl;
cout << "Enter the first number you want to add: " << endl;
cin >> num1;
cout << "Enter the second number you wat to add: " << endl;
cin >> num2;
float ans = addObj.add(num1, num2);
cout << "The sum is " << ans << endl;
cout << "Do you wish to continue? Y/N" << endl;
cin >> cont;
}
if (op == 2) {
float num1;
float num2;
Subtraction subObj;
cout << "You have chosen Subtraction!" << endl;
cout << "Enter the first number you want to subtract: " << endl;
cin >> num1;
cout << "Enter the second number you want to subtract: " << endl;
cin >> num2;
float ans = subObj.subtract(num1, num2);
cout << "The difference is " << ans << endl;
cout << "Do you wish to continue? Y/N" << endl;
cin >> cont;
}
if (op == 3) {
float num1;
float num2;
Multiplication multObj;
cout << "You have chosen Multiplication!" << endl;
cout << "Enter the first number you want to multiply: " << endl;
cin >> num1;
cout << "Enter the second number you want to multiply: " << endl;
cin >> num2;
float ans = multObj.multiply(num1, num2);
cout << "The product is " << ans << endl;
cout << "Do you wish to continue? Y/N" << endl;
cin >> cont;
}
if (op == 4) {
float num1;
float num2;
Division divObj;
cout << "You have chosen Division!" << endl;
cout << "Enter the first number you want to divide: " << endl;
cin >> num1;
cout << "Enter the second number you want to divide: " << endl;
cin >> num2;
float ans = divObj.divide(num1, num2);
cout << "The quotient is " << ans << endl;
cout << "Do you wish to continue? Y/N" << endl;
cin >> cont;
}
} while (cont == 'Y' || cont == 'y');
if (cont == 'N' || 'n') {
cout << "Thanks for using my program, goodbye!" << endl;
}
return 0;
}
I know there is a lot easier way to make something like this, but I've used classes and objects instead for the sole purpose of practice.