Mega Code Archive

 
Categories / C++ Tutorial / Structure
 

Structure composition

#include <iostream> using std::cout; using std::endl; #include <iostream> struct Name {   char firstname[80];   char surname[80];      void show();         }; struct Date {   int day;   int month;   int year;   void show();         }; struct Phone {   int areacode;   int number;   void show();         }; struct Person {   Name name;   Date birthdate;   Phone number;   void show();   int age(Date& date); }; void Name::show() {     std::cout << firstname << " " << surname << std::endl; } void Date::show() {     std::cout << month << "/" << day << "/" << year << std::endl; } void Phone::show() {     std::cout << areacode << " " << number << std::endl; } void Person::show() {     std::cout << std::endl;     name.show();     std::cout << "Brithday: ";     birthdate.show();     std::cout << "phone: ";     number.show();  } int Person::age(Date& date) {     if(date.year <= birthdate.year)       return 0;     int years = date.year - birthdate.year;          if((date.month>birthdate.month) || (date.month == birthdate.month && date.day>= birthdate.day))        return years;     else        return --years; } int main() {   Person her = {{ "L", "G" },      // Initializes Name member                 {1, 4, 1976 },     // Initializes Date member                 {999,5551234}     // Initializes Phone member                };   Person actress;   actress = her;   her.show();   Date today = { 4, 4, 2007 };   cout << endl << "Today is ";   today.show();   cout <<  endl;    cout << "Today " << actress.name.firstname << " is "         << actress.age(today) << " years old."        << endl;   return 0; } L G Brithday: 4/1/1976 phone: 999 5551234 Today is 4/4/2007 Today L is 31 years old.