Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Chapter 2.5: The Traditional Conversions

Adapted from: “Object-Oriented Programming Using C++” by Ira Pohl (Addison- Wesley)

Program that demonstrates type conversion in C++

// Miles are converted to kilometers
#include <iostream>

const double m_to_k = 1.609;    // Conversion constant

inline double mi_to_km(int miles)
{
    return (miles * m_to_k);
}

int main()
{
    int miles;
    double kilometers;

    do {
        std::cout << "\nEnter distance in miles: ";
        std::cin >> miles;

        kilometers = mi_to_km(miles);
        std::cout << "\nThis is approximately " << static_cast<int>(kilometers) 
            << "km." << std::endl;
    } while (miles > 0);
}

Compile and Execute the Program

The above program is compiled and run using Gnu Compiler Collection (g++):

import os
root_dir = os.getcwd()
code_dir = root_dir + "/" + "Cpp_Code/Chapter_2_5_The_Traditional_Conversions"
ch_dir_stat = os.chdir(code_dir)
build_command = os.system("g++ m_to_k.cpp -w -o m_to_k")
exec_status = os.system("echo \"10 50 0\" | ./m_to_k")

Enter distance in miles: 
This is approximately 16km.

Enter distance in miles: 
This is approximately 80km.

Enter distance in miles: 
This is approximately 0km.