31.12.2014 Views

Paskaitų konspektai - Matematikos ir Informatikos fakultetas ...

Paskaitų konspektai - Matematikos ir Informatikos fakultetas ...

Paskaitų konspektai - Matematikos ir Informatikos fakultetas ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

5. Vardų erdv÷s (namespace)<br />

Motyvacija<br />

Vardų erdv÷s sk<strong>ir</strong>tos spręsti globalių besikartojančių vardų konfliktus. Tarpusavyje<br />

susiję tipų, funkcijų ar globalių kintamųjų vardai gali būti apjungti į atsk<strong>ir</strong>ą vardų<br />

erdvę. Mes jau susidūr÷me su vardų erdve std, kurioje apibr÷žtos visos standartin÷s<br />

bilbiotekos klas÷s, funkcijos, globalūs kintamieji <strong>ir</strong> t.t.. Panagrin÷kime pavyzdį:<br />

dvimačiai <strong>ir</strong> trimačiai taškai bei atstumai tarp jų:<br />

// namespace1.cpp<br />

namespace Graphics2D<br />

{<br />

class Point<br />

{<br />

public:<br />

double x, y;<br />

Point (double x, double y);<br />

};<br />

double distance (const Point& p1, const Point& p2);<br />

}<br />

namespace Graphics3D<br />

{<br />

class Point<br />

{<br />

public:<br />

double x, y, z;<br />

Point (double x, double y, double z);<br />

};<br />

double distance (const Point& p1, const Point& p2);<br />

}<br />

Funkcijų <strong>ir</strong> konstruktorių realizacija:<br />

double Graphics2D::distance (const Point& a, const Point& b)<br />

{<br />

return sqrt((a.x-b.x)*(a.x-b.x) + (a.y-b.y)*(a.y-b.y));<br />

}<br />

Graphics2D::Point::Point (double _x, double _y)<br />

: x (_x), y (_y) {}<br />

// Graphics3D - analogiškai<br />

112

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!