Hi,
ich verstehe nicht ganz, was in folgendem Code passiert:
genauer gesagt diese beiden Zeilen:
bin mir nicht sicher, ob die Frage mit diesem Code Schnipsel zu beantworten ist.
Mein Verständnis von "this" kommt von Java und ich denke, das wird in cpp ähnlich verwendet. Ich verstehe nicht nicht, warum man ref sofort nach der Instanziierung überschreiben möchte...
Viele Grüße
arox
ich verstehe nicht ganz, was in folgendem Code passiert:
Code:
class FifteenPuzzle
{
public:
static const int MAX_NEIGHBORS = 4;
FifteenPuzzle(const std::string& config="abcdefghijklmnoX")
{
for (int y = 0; y < 4; ++y) {
for (int x = 0; x < 4; ++x) {
tiles[y * 4 + x] = config[y * 4 + x];
if (tiles[y * 4 + x] == 'X') {
cX = x;
cY = y;
}
}
}
}
int neighbors(FifteenPuzzle *hood) const
{
int num = 0;
if (cX > 0) {
FifteenPuzzle& ref = hood[num];
ref = *this;
++num;
std::swap(ref.tiles[cY * 4 + cX],
ref.tiles[cY * 4 + cX - 1]);
--ref.cX;
}
(...)
genauer gesagt diese beiden Zeilen:
Code:
FifteenPuzzle& ref = hood[num];
ref = *this;
bin mir nicht sicher, ob die Frage mit diesem Code Schnipsel zu beantworten ist.
Mein Verständnis von "this" kommt von Java und ich denke, das wird in cpp ähnlich verwendet. Ich verstehe nicht nicht, warum man ref sofort nach der Instanziierung überschreiben möchte...
Viele Grüße
arox
Zuletzt bearbeitet: