Lab_9 Dziedziczenie
Stworzyć nowy projekt i dołożyć pliki:
node_coord.h, node_coord.cpp - pobrać z poprzednich zadań
class NODE_COORD
{
double *pcoord; //pcoord[0] - x, pcoord[1] - y, pcoord[2] - z
public:
NODE_COORD() : pcoord(NULL) {}
NODE_COORD(double x, double y, double z);
NODE_COORD(const NODE_COORD &ob);
~NODE_COORD();
NODE_COORD & operator = (const NODE_COORD &praw);
NODE_COORD operator + (const NODE_COORD &ob) const;
friend ostream & operator << (ostream &strm, const NODE_COORD &ob);
void disp();
private:
void alloc();
protected:
void crash();
};
my_vertex.h, my_vertex.cpp:
Klasa my_vertex dziedziczy klasę NODE_COORD i dodaje składową char *str - nazwa wierzchołku. Stworzyć konstruktor sparametryzowany, przekazujący współrzędne do konstruktora klasy bazowej i alokujący pamięć dla str, destruktor, przeciążyć operator =, operator << w strumień cout.
class my_vertex : public NODE_COORD
{
char *str; //title of vertex
public:
my_vertex(double xx, double yy, double zz, char *sstr);
………………………………………….
~my_vertex();
};
Dopisać obsługę klas tak, żeby następujący fragment kodu funkcji main działał poprawnie:
int _tmain(int argc, _TCHAR* argv[])
{
my_vertex vt(0,1,2, "A"), vs(1, 3, 5, "B"), vc(0, 0, 0, "C");
cout << vt << vs << vc;
vc = vt+vs;
cout << vc;
vc = vt;
cout << vc;
system("pause");
return 0;
}
Zastanowić się, jak przeciążyć operator + .