// process_mix_of_items.cpp : Defines the entry point for the console application.
//

#include <string>
#include <iostream>

//#include "holdCommandWindow.h"

class Personal_details {

public: 	

	virtual void showdata(int i) {}

};

class Phone_extension : Personal_details {

public: 	

	unsigned int areaCode;

    unsigned long sevenDigitNumber;

	Phone_extension(unsigned int aCode, unsigned long sDNumber) {
	
	areaCode = aCode;
	sevenDigitNumber = sDNumber;
	
	}
	
	void showdata(int i){
	
	    std::cout << "Element index number " << i << " is a Phone extension (" << areaCode << ") " << sevenDigitNumber << "\n";

	}
	
};

class Age : Personal_details {

public: 	

    unsigned int ageYears;
	
	Age(unsigned int aYears) {
	
	ageYears = aYears;
	
	}

	void showdata(int i){
		
        std::cout << "Element index number " << i << " is a Age " << ageYears << "\n";

	}	
	
};

class House_number : Personal_details {

public: 	

    unsigned long houseNumber;

	House_number(unsigned long hNumber) {
	
	houseNumber = hNumber;
	
	}
	
	void showdata(int i){
		
        std::cout << "Element index number " << i << " is a House number " << houseNumber << "\n";
    
	}	
	
};
/*
void showData(void *data[], int nData)
{
    std::cout << "\n";

    for ( int i=0; i < nData; ++i ) {

        id_kind id = *(reinterpret_cast<const id_kind*>(data[i]));

        std::cout << "Element index number " << i << " is a "; 

        switch ( id ) {
        
        case id_phone_extension:

            const phone_extension *pPhone;
                
            pPhone = reinterpret_cast<const phone_extension*>(data[i]);

            std::cout << "Phone extension (" << pPhone->areaCode << ") " << pPhone->sevenDigitNumber << "\n";

            break;

        case id_age:
            
            const age *pAge;
            
            pAge = reinterpret_cast<const age*>(data[i]);

            std::cout << "Age " << pAge->ageYears << "\n";

            break;

        case id_house_number:

            const house_number *pHouse;
            
            pHouse = reinterpret_cast<const house_number*>(data[i]);

            std::cout << "House number " << pHouse->houseNumber << "\n";
            
            break;
        }
    }
}
*/

int main()
{

    int i;
	
    Personal_details  pd;

    pd = new Phone_extension(313, 4567892);
   // pd[1] = new Phone_extension(800, 3334455);
    //pd[2] = new Age( 39);
   // pd[3] = new Age(21);
   // pd[4] = new Age(44842);

//	for(i=0;i<5;i++)
//	{
	
	pd->showData(1);
	
//	}
    
//	return holdCommandWindow();
}
