- #ifndef DISTANCE_H_ 
- #define DISTANCE_H_ 
-   
- using namespace std; 
- #include <iostream> 
-   
- //const to facilitate conversions between the two classes 
-   
- const double FEET_IN_METERS = 0.3048; 
- const double FURLONG_TO_FEET = 660; 
-   
- class Furlong; 
- class Metric; 
-   
- class Furlong 
- { 
- public: 
-   
-     Furlong(int fur = 0, int yar = 0, int fee = 0.0); 
-   
-     // Copy Constructor. 
-   
-     Furlong( const Furlong& rhs ); 
-   
-     // Destructor. 
-   
-     ~Furlong(void); 
-   
-     // Assignment operator=. 
-     Furlong&    operator=(const Furlong& rhs); 
-   
-     int furlong; 
-     int yards; 
-     double feet; 
-   
- }; 
-   
- class Metric  
- { 
-   
- public: 
- Metric(int kilo = 0, double mete = 0.0); 
-   
- Metric (const Metric& rhs); 
-   
- ~Metric(void); 
-   
- Metric& operator=(const Metric& rhs); 
-   
- Metric (Furlong& f); 
-   
- operator Furlong(); 
-   
- int kilometers; 
- double meters; 
- }; 
-   
- #endif 
-   
- // ----- 
-   
- #include <stdlib.h> 
- //#include "Distances.h" 
-   
- //FURLONG CLASS DEFINITIONS 
-   
- //Constructor 
-   
- Furlong::Furlong(int fur, int yar, int fee) 
- { 
-     furlong = fur; 
-     yards = yar; 
-     feet = fee; 
- } 
-   
- // Copy Constructor. 
-   
- Furlong::Furlong( const Furlong& rhs ) 
- { 
-     furlong = rhs.furlong; 
-     yards = rhs.yards; 
-     feet = rhs.feet; 
- } 
-   
-     // Destructor. 
-   
- Furlong::~Furlong(void) 
- { 
-   
- } 
-   
-     // Assignment operator=. 
-   
- Furlong& Furlong::operator=(const Furlong& rhs) 
- { 
-   
-     furlong = rhs.furlong; 
-     yards = rhs.yards; 
-     feet = rhs.feet; 
-   
-     return *this; 
-   
- } 
- //METRIC CLASS DEFINITONS 
-   
-   
-   
- Metric::Metric(int kilo, double mete) 
- { 
-     kilometers = kilo; 
-     meters = mete; 
- } 
- Metric::Metric(const Metric& rhs) 
- { 
-   
-     kilometers = rhs.kilometers; 
-     meters     = rhs. meters; 
- } 
-   
- Metric::~Metric(void) 
- { 
-   
- } 
-   
- Metric& Metric::operator=(const Metric& rhs) 
- { 
-     kilometers = rhs.kilometers; 
-     meters     = rhs.meters; 
-   
-     return *this; 
- } 
-   
- // conversion constructor 
-   
- Metric::Metric (Furlong& f) 
- { 
-  kilometers = 3; 
-  meters = 2.0; 
- } 
-   
- //conversion operator 
-   
- Metric::operator Furlong() 
- { 
-   
-     return Furlong(1, 2, 3.0); 
- } 
-   
- // ----- 
-   
- #include <stdlib.h> 
- //#include "Distances.h" 
-   
-   
- using namespace std; 
-   
- int main()  
- { 
- Furlong one(1,2,3.0);  
- Furlong three(4,5,6.0); 
- Metric two(7,8.0); 
- Metric four(9, 10.0); 
-   
- one = two; 
- four = three; 
-   
-   
- return 0; 
- } 
				I2lmbmRlZiBESVNUQU5DRV9IXwojZGVmaW5lIERJU1RBTkNFX0hfCgp1c2luZyBuYW1lc3BhY2Ugc3RkOwojaW5jbHVkZSA8aW9zdHJlYW0+CgovL2NvbnN0IHRvIGZhY2lsaXRhdGUgY29udmVyc2lvbnMgYmV0d2VlbiB0aGUgdHdvIGNsYXNzZXMKCmNvbnN0IGRvdWJsZSBGRUVUX0lOX01FVEVSUyA9IDAuMzA0ODsKY29uc3QgZG91YmxlIEZVUkxPTkdfVE9fRkVFVCA9IDY2MDsKCmNsYXNzIEZ1cmxvbmc7CmNsYXNzIE1ldHJpYzsKCmNsYXNzIEZ1cmxvbmcKewpwdWJsaWM6CgogICAgRnVybG9uZyhpbnQgZnVyID0gMCwgaW50IHlhciA9IDAsIGludCBmZWUgPSAwLjApOwoKICAgIC8vIENvcHkgQ29uc3RydWN0b3IuCgogICAgRnVybG9uZyggY29uc3QgRnVybG9uZyYgcmhzICk7CgogICAgLy8gRGVzdHJ1Y3Rvci4KCiAgICB+RnVybG9uZyh2b2lkKTsKCiAgICAvLyBBc3NpZ25tZW50IG9wZXJhdG9yPS4KICAgIEZ1cmxvbmcmICAgIG9wZXJhdG9yPShjb25zdCBGdXJsb25nJiByaHMpOwoKICAgIGludCBmdXJsb25nOwogICAgaW50IHlhcmRzOwogICAgZG91YmxlIGZlZXQ7Cgp9OwoKY2xhc3MgTWV0cmljIAp7CgpwdWJsaWM6Ck1ldHJpYyhpbnQga2lsbyA9IDAsIGRvdWJsZSBtZXRlID0gMC4wKTsKCk1ldHJpYyAoY29uc3QgTWV0cmljJiByaHMpOwoKfk1ldHJpYyh2b2lkKTsKCk1ldHJpYyYgb3BlcmF0b3I9KGNvbnN0IE1ldHJpYyYgcmhzKTsKCk1ldHJpYyAoRnVybG9uZyYgZik7CgpvcGVyYXRvciBGdXJsb25nKCk7CgppbnQga2lsb21ldGVyczsKZG91YmxlIG1ldGVyczsKfTsKCiNlbmRpZgoKLy8gLS0tLS0KCiNpbmNsdWRlIDxzdGRsaWIuaD4KLy8jaW5jbHVkZSAiRGlzdGFuY2VzLmgiCgovL0ZVUkxPTkcgQ0xBU1MgREVGSU5JVElPTlMKCi8vQ29uc3RydWN0b3IKCkZ1cmxvbmc6OkZ1cmxvbmcoaW50IGZ1ciwgaW50IHlhciwgaW50IGZlZSkKewogICAgZnVybG9uZyA9IGZ1cjsKICAgIHlhcmRzID0geWFyOwogICAgZmVldCA9IGZlZTsKfQoKLy8gQ29weSBDb25zdHJ1Y3Rvci4KCkZ1cmxvbmc6OkZ1cmxvbmcoIGNvbnN0IEZ1cmxvbmcmIHJocyApCnsKICAgIGZ1cmxvbmcgPSByaHMuZnVybG9uZzsKICAgIHlhcmRzID0gcmhzLnlhcmRzOwogICAgZmVldCA9IHJocy5mZWV0Owp9CgogICAgLy8gRGVzdHJ1Y3Rvci4KCkZ1cmxvbmc6On5GdXJsb25nKHZvaWQpCnsKCn0KCiAgICAvLyBBc3NpZ25tZW50IG9wZXJhdG9yPS4KCkZ1cmxvbmcmIEZ1cmxvbmc6Om9wZXJhdG9yPShjb25zdCBGdXJsb25nJiByaHMpCnsKCiAgICBmdXJsb25nID0gcmhzLmZ1cmxvbmc7CiAgICB5YXJkcyA9IHJocy55YXJkczsKICAgIGZlZXQgPSByaHMuZmVldDsKCiAgICByZXR1cm4gKnRoaXM7Cgp9Ci8vTUVUUklDIENMQVNTIERFRklOSVRPTlMKCgoKTWV0cmljOjpNZXRyaWMoaW50IGtpbG8sIGRvdWJsZSBtZXRlKQp7CiAgICBraWxvbWV0ZXJzID0ga2lsbzsKICAgIG1ldGVycyA9IG1ldGU7Cn0KTWV0cmljOjpNZXRyaWMoY29uc3QgTWV0cmljJiByaHMpCnsKCiAgICBraWxvbWV0ZXJzID0gcmhzLmtpbG9tZXRlcnM7CiAgICBtZXRlcnMgICAgID0gcmhzLiBtZXRlcnM7Cn0KCk1ldHJpYzo6fk1ldHJpYyh2b2lkKQp7Cgp9CgpNZXRyaWMmIE1ldHJpYzo6b3BlcmF0b3I9KGNvbnN0IE1ldHJpYyYgcmhzKQp7CiAgICBraWxvbWV0ZXJzID0gcmhzLmtpbG9tZXRlcnM7CiAgICBtZXRlcnMgICAgID0gcmhzLm1ldGVyczsKCiAgICByZXR1cm4gKnRoaXM7Cn0KCi8vIGNvbnZlcnNpb24gY29uc3RydWN0b3IKCk1ldHJpYzo6TWV0cmljIChGdXJsb25nJiBmKQp7CiBraWxvbWV0ZXJzID0gMzsKIG1ldGVycyA9IDIuMDsKfQoKLy9jb252ZXJzaW9uIG9wZXJhdG9yCgpNZXRyaWM6Om9wZXJhdG9yIEZ1cmxvbmcoKQp7CgogICAgcmV0dXJuIEZ1cmxvbmcoMSwgMiwgMy4wKTsKfQoKLy8gLS0tLS0KCiNpbmNsdWRlIDxzdGRsaWIuaD4KLy8jaW5jbHVkZSAiRGlzdGFuY2VzLmgiCgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCkgCnsKRnVybG9uZyBvbmUoMSwyLDMuMCk7IApGdXJsb25nIHRocmVlKDQsNSw2LjApOwpNZXRyaWMgdHdvKDcsOC4wKTsKTWV0cmljIGZvdXIoOSwgMTAuMCk7CgpvbmUgPSB0d287CmZvdXIgPSB0aHJlZTsKCgpyZXR1cm4gMDsKfQ==