Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //============================================================================
- // Name : kolokvij3.cpp
- // Author :
- // Version :
- // Copyright : Your copyright notice
- // Description : Hello World in C++, Ansi-style
- //============================================================================
- #include <iostream>
- #include <exception>
- #include <sstream>
- using namespace std;
- class Mesto{
- private:
- string ime;
- int x;
- int y;
- public:
- Mesto(string i, int xIn, int yIn){
- ime = i;
- x = xIn;
- y = yIn;
- };
- Mesto(){
- ime = "NULL";
- x = 0;
- y = 0;
- }
- string getime(){
- return this->ime;
- };
- };
- class myexception: public exception{
- private:
- Mesto* mesto1;
- Mesto* mesto2;
- Mesto* mesto3;
- Mesto* mesto4;
- public:
- myexception(Mesto* mesto1In,Mesto* mesto2In,Mesto* mesto3In,Mesto* mesto4In){
- mesto1 = mesto1In;
- mesto2 = mesto2In;
- mesto3 = mesto3In;
- mesto4 = mesto4In;
- };
- virtual const char* what() const throw()
- {
- stringstream string; string << mesto1->getime() << " " << mesto2->getime() << " " << mesto3->getime() << " " << mesto4->getime();
- const char* c = string.str().c_str();
- return c;
- }
- };
- class Pot{
- private:
- double dolzina;
- Mesto* zacetno;
- Mesto* koncno;
- public:
- Pot(double d,Mesto* z, Mesto* k){
- dolzina = d;
- zacetno = z;
- koncno = k;
- };
- Pot(){
- dolzina = 0;
- zacetno = new Mesto();
- koncno = new Mesto();
- };
- string toString(){
- stringstream sstring ; sstring << this->dolzina << "km " << this->zacetno->getime() << " " << this->koncno->getime();
- return sstring.str();
- };
- Pot operator+(Pot& a){
- if(this->zacetno->getime() != a.zacetno->getime() && this->zacetno->getime() != a.koncno->getime() && this->koncno->getime() != a.koncno->getime()){
- throw myexception(this->zacetno,a.zacetno,this->koncno,a.koncno);
- Pot p3(0,new Mesto("NULL",0,0),new Mesto("NULL",0,0));
- return p3;
- }
- else if(this->zacetno == a.zacetno){
- Pot p3(this->dolzina + a.dolzina,this->koncno,a.koncno);
- return p3;
- }
- Pot p3(0,new Mesto("NULL",0,0),new Mesto("NULL",0,0));
- return p3;
- };
- };
- int main() {
- cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!!
- Mesto* ce=new Mesto("Celje",3,1);
- Mesto* mb=new Mesto("Maribor",10,1);
- Mesto* lj=new Mesto("Ljubljana",15,2);
- Mesto* pr=new Mesto("Piran",0,0);
- Pot p1(50,ce,lj);
- Pot p2(60,mb,pr);
- Pot p3;
- try{
- p3 = p1 + p2;
- }
- catch(exception& myexception){
- cout << myexception.what() << endl;
- }
- cout << p3.toString() << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement