Proceduralni jezici - FESB
Proceduralni jezici - FESB
Proceduralni jezici - FESB
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
U C++ postoji problem plitkog i dubokog kopiranja, koji se rješava tako da korisnik sam definira operator pridjele<br />
vrijednosti. Ortodoksni kanonički oblik klase u C++ zahtijeva da se definira a) konstruktor, b) destruktor, c) operator = i d)<br />
kopirni konstruktor:<br />
#include <br />
class Point {<br />
public:<br />
int dimensions;<br />
float *coordinates;<br />
Point (int d = 2) {<br />
dimensions = d;<br />
coordinates = new float[d];<br />
}<br />
~Point() {delete [] coordinates;}<br />
// mora se definirati za dinamički<br />
// alocirane članove<br />
Point &operator =(Point &p) {<br />
if(this == &p) return *this;<br />
if(p.dimensions != dimensions) {<br />
delete [] coordinates;<br />
coordinates = new float[p.dimensions];<br />
}<br />
for(int i=0; icoordinates[i]=i;<br />
plane = solid; //OK in if operator = defined<br />
// but plane is now 3d point<br />
for (i=0; idimensions; i++)<br />
std::cout coordinates[i]