Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- class tacka {
- int x;
- int y;
- char * oznaka;
- public:
- tacka();
- tacka(char *, int, int);
- tacka(const tacka & druga);
- ~tacka();
- double udaljenost(const tacka &);
- int getX() const;
- int gety() const;
- int setx(int);
- int sety(int);
- char * getOznaka() const;
- tacka & operator=(const tacka &);
- tacka & operator+(const tacka&);
- tacka & operator-(const tacka&);
- tacka & operator++();
- tacka operator++(int);
- bool operator>(tacka&);
- bool operator<(tacka&);
- bool operator==(tacka&);
- friend ostream& operator<<(ostream &out, tacka& l);
- friend istream& operator>>(istream &in, const tacka& l);
- };
- tacka::tacka() {
- oznaka = new char(' ');
- x = y = 0;
- }
- tacka::tacka(char * _oznaka, int _x, int _y) {
- oznaka = new char[strlen(_oznaka) + 1];
- strcpy_s(oznaka, strlen(_oznaka) + 1, _oznaka);
- x = _x;
- y = _y;
- }
- tacka::tacka(const tacka & original) {
- oznaka = new char[strlen(original.oznaka) + 1];
- strcpy_s(oznaka, strlen(original.oznaka) + 1, original.oznaka);
- x = original.x;
- y = original.y;
- }
- tacka::~tacka() { delete[] oznaka; oznaka = NULL; }
- double tacka::udaljenost(const tacka & druga) {
- return sqrt(pow((druga.y - y), 2) + pow((druga.x - x), 2));
- }
- int tacka::getX() const {
- return x;
- }
- int tacka::gety() const {
- return y;
- }
- char * tacka::getOznaka() const {
- return oznaka;
- }
- tacka & tacka::operator=(const tacka &druga) {
- if (this != &druga) {
- oznaka = new char[strlen(druga.oznaka) + 1];
- strcpy_s(oznaka, strlen(druga.oznaka) + 1, druga.oznaka);
- x = druga.x;
- y = druga.y;
- }
- return *this;
- }
- tacka& tacka::operator+(const tacka& d){
- x += d.x;
- y += d.y;
- return *this;
- }
- tacka & tacka::operator-(const tacka& d){
- x -= d.x;
- y -= d.y;
- return *this;
- }
- tacka & tacka::operator++(){
- ++x;
- ++y;
- return *this;
- }
- tacka tacka::operator++(int a){
- tacka temp=*this;
- x++;
- y++;
- return temp;
- }
- bool tacka::operator>(tacka& d){
- return (x > d.x&&y > d.y);
- }
- bool tacka::operator<(tacka& d){
- return (!operator>(d));
- }
- bool tacka::operator==(tacka& d){
- return (x==d.x&&y==d.y);
- }
- int tacka::setx(int x){
- this->x = x;
- return this->x;
- }
- int tacka::sety(int y){
- this->y = y;
- return this->y;
- }
- ostream& operator<<(ostream& out,const tacka& l){
- out << "Tacka x: " << l.x << "; Tacka y: " << l.y << endl;
- return out;
- }
- istream& operator>>(istream &in, tacka& l){
- in>>l.x>>l.y;
- return in;
- }
- class duz {
- char * oznaka;
- tacka a;
- tacka b;
- double duzina;
- public:
- duz();
- duz(char *, tacka &, tacka &);
- duz(const duz &);
- ~duz();
- char * getOznaka() const;
- tacka getA() const;
- tacka getB() const;
- double getDuzina() const;
- };
- duz::duz() {
- oznaka = new char(' ');
- a = tacka("", 0, 0);
- b = tacka("", 0, 0);
- duzina = 0;
- }
- duz::duz(char * _oznaka, tacka & _a, tacka & _b) {
- oznaka = new char[strlen(_oznaka) + 1];
- strcpy_s(oznaka, strlen(_oznaka) + 1, _oznaka);
- a = _a;
- b = _b;
- duzina = a.udaljenost(b);
- }
- duz::duz(const duz & original) {
- oznaka = new char[strlen(original.oznaka) + 1];
- strcpy_s(oznaka, strlen(original.oznaka) + 1, original.oznaka);
- a = original.a;
- b = original.b;
- duzina = a.udaljenost(b);
- }
- duz::~duz() { delete[] oznaka; oznaka = NULL; }
- char * duz::getOznaka() const {
- return oznaka;
- }
- tacka duz::getA() const {
- return a;
- }
- tacka duz::getB() const {
- return b;
- }
- double duz::getDuzina() const {
- return duzina;
- }
- void main() {
- tacka A("A", 4, 0);
- tacka B("B", 0, 3);
- duz a("a", A, B);
- cout << a.getOznaka() << "(" << a.getA().getOznaka() << "," << a.getB().getOznaka() << ")" << endl;
- cout << "Duzina duzi " << a.getOznaka() << " iznosi: " << a.getDuzina() << endl;
- cout << "\nTest novih funkcija:\n";
- //cout << "A: " << A;
- }
Advertisement
Add Comment
Please, Sign In to add comment