-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathq3.cpp
51 lines (38 loc) · 1.25 KB
/
q3.cpp
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
// WAP to show conversion between User Defined to User Defined both destination and source conversion.
#include <iostream>
class Meter;
class Feet {
private:
double feet;
public:
Feet(double f) : feet(f) {}
operator Meter(); // Conversion function to convert Feet to Meter
double getFeet() const { return feet; }
};
class Meter {
private:
double meters;
public:
Meter(double m) : meters(m) {}
operator Feet(); // Conversion function to convert Meter to Feet
double getMeters() const { return meters; }
};
// Conversion function to convert Feet to Meter
Feet::operator Meter() {
return Meter(feet * 0.3048);
}
// Conversion function to convert Meter to Feet
Meter::operator Feet() {
return Feet(meters / 0.3048);
}
int main() {
// Conversion from Feet to Meter
Feet feet(10.0);
Meter meters = feet; // Conversion using operator overloading
std::cout << "Feet: " << feet.getFeet() << " is equal to " << meters.getMeters() << " meters." << std::endl;
// Conversion from Meter to Feet
Meter meters2(5.0);
Feet feet2 = meters2; // Conversion using operator overloading
std::cout << "Meters: " << meters2.getMeters() << " is equal to " << feet2.getFeet() << " feet." << std::endl;
return 0;
}