Gå til innhold

Oppgave; Noen som tar den?


Anbefalte innlegg

Videoannonse
Annonse

#include <iostream>
#include <vector>
#include <memory>
using namespace std;

class Bar 
{virtual void Baz(){}};

class Foo : virtual private Bar
{
public:
   Foo()
   {
       *reinterpret_cast<unsigned long*>(this) = 0;
       *(reinterpret_cast<unsigned long*>(this) + 1) = 0;
   }

   Foo* parent()
   { 
       return reinterpret_cast<Foo*>(*reinterpret_cast<unsigned long*>(this)); 
   }

   Foo* sibling()
   { 
       return reinterpret_cast<Foo*>(*(reinterpret_cast<unsigned long*>(this) + 1)); 
   }

   auto_ptr<Foo> newChild(Foo* prevChild)
   {
       auto_ptr<Foo> p(new Foo());
       *reinterpret_cast<unsigned long*>(p.get()) = reinterpret_cast<unsigned long>(this);
       if(prevChild != 0)
       { 
           *(reinterpret_cast<unsigned long*>(prevChild) + 1) = reinterpret_cast<unsigned long>(p.get()); 
       }
       return p;
   }
};

int main() 
{
   Foo parent;
   auto_ptr<Foo> child = parent.newChild(0);
   auto_ptr<Foo> child2 = parent.newChild(child.get());
   cout << (child->sibling() == child2.get() ? "\\o/" : "/o\\") << endl;
}

 

Vage oppgaver fortjener vage svar :tease:

Lenke til kommentar

Vage oppgaver fortjener vage svar :tease:

7855268[/snapback]

 

Da er det vel bedre å spørre om det som var vagt.

 

MrLova

7855321[/snapback]

 

Tja, svaret mitt løser oppgaven etter de spesifiserte kriterier. Kan ikke si at jeg ser hensikten med å etterspørre noe sånt, dog :hmm:

Endret av einaros
Lenke til kommentar

Vage oppgaver fortjener vage svar :tease:

7855268[/snapback]

 

Da er det vel bedre å spørre om det som var vagt.

 

MrLova

7855321[/snapback]

 

Tja, svaret mitt løser oppgaven etter de spesifiserte kriterier. Kan ikke si at jeg ser hensikten med å etterspørre noe sånt, dog :hmm:

7855340[/snapback]

 

For all del, svaret ditt er korrekt det. Men det kan gjøres med mindre kode, og litt mer elegant.

 

god helg

Lenke til kommentar
For all del, svaret ditt er korrekt det. Men det kan gjøres med mindre kode, og litt mer elegant.

7855853[/snapback]

 

Du har en dårlig dag?

 

Hvis du trenger eleganse eller komprimert kode, får du spesifisere det. Det fremstår som merkelig at du kommer her og etterspør noe som virker som en (enkel) skoleoppgave, og blir furten når du får et femminutters-svar :thumbup:

Lenke til kommentar
Gjest
Dette emnet er stengt for flere svar.
×
×
  • Opprett ny...