[ Sale_123 @ 14.09.2010. 18:34 ] @
Recimo da pisem djeljenu biblioteku, u kojoj postoji jedna klasa, npr: Line
Code:

class LineImpl;

class __declspec(dllexport) Line {
public:
 Line();
 ~Line();
 double x1() const;
 double y1() const;

 double x2() const;
 double y2() const;

 void setLine(double x1, double y1, double x2, double y2);

private:

LineImpl * line;
};

i klasa u kojoj se vrsi implementacija:
Code:

class Line {
public:
 Line();
 ~Line();
 double x1() const;
 double y1() const;

 double x2() const;
 double y2() const;

 void setLine(double x1, double y1, double x2, double y2);

private:
double m_x1;
double m_y1;
double m_x2;
double m_y2;
};

Code:

#include "line.h"
#include "lineimpl.h"
Line::Line() 
{
 line = new LineImpl();
}

Line::~Line() 
{
 delete line;
}

double Line::x1() const
{
 return line->x1();
}
...

E sad poenta plmpl-a je da ako sad u klasu LineImpl dodam jos odredjene privatne variable, nije potrebno da se svi programi koji koriste tu biblioteku ponovo kompajliraju. Vjerujem da ste vec svi upoznati o cemu pricam.

Ono sto mene interesuje, sta se desava ako ja u klasu Line dodam odredjene funkcije koje opet pozivaju LineImpl.

1. Da li tada moraju da se ponovo kompajliraju programi koji koriste moju biblioteku?
2. Sta se desava ako promjenim redoslijed funkcija u klasi Line?