Cześć, proszę o pomoc w zrozumieniu tworzenia kodu, który jest zaznaczony komentarzami. Jest to program z zaliczenia z języka c++ niestety nie został on sprecyzowany przez prowadzącego i nie bardzo wiem co ma on robić:) Poniżej dane jakie otrzymałem a pod tym mój kod programu :) z góry dzięki za pomoc.
Podane przez prowadzącego:
class Bilet
{
private:
char* skad;
char* dokad;
Data kiedy;
public:
do zrobienia:
konstruktor, konstruktor kopiujący, operatory przeciążenia: =,==,>>,<<
};
class Data
{
private:
int dzien;
int miesiac;
int rok;
public:
do zrobienia:
konstruktor
};
Mój kod programu :
#include <stdlib.h>
#include <iostream>
using namespace std;
class Bilet
{
private:
char* skad;
char* dokad;
Data kiedy;
public:
Bilet(const char* s, const char* d,const Data kk);
Bilet(const Bilet &k);
Bilet & operator=(const Bilet &k);
friend bool & operator==(const Bilet &k1, const Bilet &k2);
friend istream & operator>>(istream &is, Bilet &k);
friend ostream & operator<<(ostream &os, const Bilet &k);
};
class Data
{
private:
int dzien;
int miesiac;
int rok;
public:
Data(int d, int m, int r);
};
Wywolanie wszystkiego
#include "deklaracja.h"
Bilet::Bilet(const char* s, const char* d,const Data kk) :Data(int d, int m, int r);// tu trzeba użyć dziedziczenia przy czym nie wiem jak przypisać pod jedną zmienna 3 wartości
int dlugosc=strlen(s);
skad=new char[dlugosc+1];
strcpy(skad,s);
dlugosc=strlen(d);
dokad=new char[dlugosc+1];
strcpy(dokad,d);
//tworzenie Daty??
}
Bilet::Bilet(const Bilet &k)
{
int dlugosc=strlen(k.skad);
skad=new char[dlugosc+1];
strcpy(skad,k.skad);
dlugosc=strlen(k.dokad);
dokad=new char[dlugosc+1];
strcpy(dokad,k.dokad);
//kopiowanie Daty??
}
Bilet & Bilet::operator=(const Bilet &k)
{
if(this ==&k)
return *this;
delete [] skad;
delete [] dokad;
int dlugosc=strlen(k.skad);
skad=new char[dlugosc+1];
strcpy(skad,k.skad);
dlugosc=strlen(k.dokad);
dokad=new char[dlugosc+1];
strcpy(dokad,k.dokad);
//dalej problem z datą :(
}
bool & operator==(const Bilet &k1, const Bilet &k2);
{
//tu nie wiem co porownac mam ale sprobuje
return (strcpm(k1.skad,k2.dokad));
}
}
ostream & operator<<(ostream &os, const Bilet &k);
{
os<<"Skad: "<<k.skad<<"\t Dokad :"<<k.dokad<<endl;
return os;
}
istream & operator>>(istream &is, Bilet &k)
{
is>>k.skad>>k.dokad;
return is;
}
Data::Data(int d, int m, int r)
{
dzien=d;
miesiac=m;
rok=r;
}