#include <iostream>
using namespace std;

//.............................encapsulation...............................//
class car {
private:
	int speed;

public:
	car() {
		speed = 0;
	}
	void setSpeed(int s) {
		speed = s;
	}
	int getSpeed() {
		return speed;
	}
};

//.............................inheritance...............................//

//class Animal {
//public:
//	void eat() {
//		cout << "Eating..." << endl;
//	}
//};
//
//class Dog : public Animal
//{
//public:
//	void bark() {
//		cout << "woof! woof!" << endl;
//	}
//};
//.............................polymorphism...............................//

//class math {
//public:
//	int add(int a, int b) {
//		return a + b;
//	}
//	int add(int a, int b, int c) {
//		return a + b + c;
//	}
//	double add(double a, double b) {
//		return a + b;
//	}
//};

// can i add 2 numbers without tell the data type of the numbers? 

//.............................abstraction...............................//
//
//class coffeeMachine {
//public:
//	void makeCoffee() {
//		grindCoffee();
//		heatWater();
//		brewCoffee();
//		cout << "Coffee is ready!" << endl;
//	}
//
//private:
//	void grindCoffee() {
//		cout << "Grinding coffee beans..." << endl;
//	}
//	void heatWater() {
//		cout << "Heating water..." << endl;
//	}
//	void brewCoffee() {
//		cout << "Brewing coffee..." << endl;
//	}
//};

int main()
{
	car mycar;
	mycar.setSpeed(100);
	cout << mycar.getSpeed() << endl;

	//Dog mydog;
	//mydog.bark();
	//mydog.eat();

	//math m;
	//cout << m.add(5, 10) << endl;
	//cout << m.add(5, 10, 15) << endl;
	//cout << m.add(5.5, 10.55) << endl;

	//coffeeMachine myCoffeeMachine;
	//myCoffeeMachine.makeCoffee();

	return 0;
}