HelloWorld - wer schaffts am kompliziertesten?



  • Jo das ist meins, wer auch immer das unter "side on weed" gepostet hat 🙂

    Verwendung von definierten Variablennamen:

    // C++ BEGINNER TUTORIAL, LESSON 1, LISTING 1:  "HELLO WORLD"
    #include <iostream>
    namespace vvWCv{typedef std::basic_ostream<wchar_t,std::char_traits<wchar_t> >v1337v;}
    namespace vvPCN{template<class vvS>class vvPC{protected:vvS& vS5;public:vvPC(vvS& vS):
    vS5(vS){}virtual void vp()=0;};namespace vvHW{vvPCN::vvPC<vvWCv::v1337v>* vHW [10+1];}
    namespace vvL {template<class vvS>class vvH:public vvPC<vvS>{public:vvH(vvS& vS):vvPC<
    vvS>(vS){}virtual void vp(){vS5.put('H');}};template<class vvS> class vve:public vvPC<
    vvS>{ public:vve(vvS& vS):vvPC<vvS >(vS){}virtual void vp(){vS5.put('e');}};template <
    class vvS>class vvl:public vvPC<vvS>{public:vvl(vvS & vS):vvPC<vvS>(vS){} virtual void
    vp(){vS5 .put('l');}};template<class vvS>class vvo:public vvPC<vvS>{public:vvo(vvS& vS)
    :vvPC<vvS> (vS){}virtual void vp(){vS5 .put('o');}};template<class vvS>class vvv:public
    vvPC <vvS> { public:vvv(vvS& vS ):vvPC<vvS>(vS){} virtual void vp () {vS5. put(' ');}};
    template <class vvS>class vvW : public vvPC< vvS>{ public:vvW(vvS& vS):vvPC <vvS>(vS){}
    virtual void vp(){vS5.put('W');}};template<class vvS>class vvr:public vvPC<vvS>{public:
    vvr(vvS& vS):vvPC<vvS>(vS){}virtual void vp(){vS5.put('r');}};template<class vvS >class
    vvd:public vvPC<vvS>{public:vvd(vvS& vS):vvPC<vvS>(vS){}virtual void vp(){vS5.put('d');
    }};}}int main(int vC,char**vV){vvPCN::vvHW::vHW[-0]=new vvPCN::vvL::vvH<vvWCv::v1337v>(
    std::wcout);vvPCN::vvHW::vHW[1]=new vvPCN::vvL::vve<vvWCv::v1337v>(std::wcout);vvPCN ::
    vvHW::vHW[2]=new vvPCN::vvL::vvl< vvWCv::v1337v>(std ::wcout);vvPCN::vvHW::vHW[3] = new
    vvPCN::vvL::vvl<vvWCv::v1337v>(std::wcout) ;vvPCN::vvHW::vHW[-5+9]=new vvPCN::vvL::vvo<
    vvWCv::v1337v>(std::wcout);vvPCN::vvHW::vHW[5]=new vvPCN::vvL::vvv<vvWCv::v1337v>(std::
    wcout);vvPCN::vvHW::vHW[6]=new vvPCN::vvL::vvW<vvWCv::v1337v>(std::wcout);vvPCN::vvHW::
    vHW[7]=new vvPCN::vvL::vvo<vvWCv::v1337v>(std::wcout);vvPCN::vvHW::vHW[7+1]=new vvPCN::
    vvL::vvr<vvWCv::v1337v>(std::wcout);vvPCN::vvHW::vHW[10-+1]=new vvPCN::vvL::vvl<vvWCv::
    v1337v>(std::wcout);vvPCN::vvHW::vHW[10]=new vvPCN::vvL::vvd<vvWCv::v1337v>(std::wcout)
    ;typedef void (vvPCN::vvPC<vvWCv::v1337v>::*vvL)();vvL vLG=vvPCN::vvPC<vvWCv::v1337v>::
    vp;for(int vI=0;vI<11;++vI){((vvPCN::vvHW::vHW[vI])->*vLG)();delete vvPCN::vvHW::vHW[vI
    ];}return vI-11;}
    

    Ich zeige hier im ersten Listing meines Tutorials ein simples Programm, dass aber viele Features von C++ zeigt:

    - Grundlegenden Aufbau eines C++-Programms, die main()-Funktion
    - Die freie Variablen- & Whitespacewahl
    - Ausgabe von Zeichen mittels Streams
    - Wide-Character-Ausgabe mittels der I/O-Stream-Library
    - Schleifen
    - Arrays
    - Zeiger
    - Dynamischer Speicher (new/delete)
    - Namespaces
    - Klassen
    - Vererbung
    - Polymorphie
    - Templates
    - Methodenpointer auf Methoden von Templateklassen
    uvm.

    MfG SideWinder



  • Hab ich vielleicht schonmal gepostet, aber egal:

    char main[] = { 0xE8, 13, 0, 0, 0, 'H', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r',
    'l', 'd', '!', '\n' , 0x59, 0xB8, 4, 0, 0, 0, 0xBB, 1, 0, 0, 0, 0xBA, 13, 0,
    0, 0, 0xCD, 0x80, 0xB8, 1, 0, 0, 0, 0xBB, 0, 0, 0, 0, 0xCD, 0x80 };
    

    (linux/x86 only)



  • struct PerlinVarsStruct
    {
        float (*InterpolateFn)(float, float, float);
    }
    
    float LinearInterpolate(float a,float b,float x)
    {
    	return a*(1-x) + b*x;
    }
    
    struct PerlinVarsStruct PerlinVars;
    
    PerlinVars.InterpolateFn = LinearInterpolate;
    
    float i1 = PerlinVars.InterpolateFn(v1 , v2 , frac_a);
    


  • Irgendwer ausm Chat ist ein kleiner Gauner 🙂

    MfG SideWinder



  • Irgendwer aus dem Chat ist ein kleiner Lügner. Du wolltest doch schlafen gehen.



  • Irgendwer on heroin schrieb:

    Irgendwer aus dem Chat ist ein kleiner Lügner. Du wolltest doch schlafen gehen.

    Nö hab euch eine gute Nacht gewunschen und hab den Chat beendet 🙂 Schlafen gehen so früh? *tz*

    MfG SideWinder



  • #include <conio.h>
    int main(){char var1 = 0;_asm
    {mov al,var1 
    add al,0x48
    mov var1,al
    }putch(var1);_asm{mov al,var1
    add al,0x19
    mov var1,al
    }putch(var1);_asm{mov al,var1 
    add al,0x0b
    mov var1,al}putch(var1);putch(var1);_asm{mov al,var1 
    add al,0x03
    mov var1,al
    }putch(var1);_asm{mov al,var1 
    sub al,0x4f
    mov var1,al
    }putch(var1);_asm{mov al,var1 
    add al,0x37
    mov var1,al
    }putch(var1);
    _asm{mov al,var1 
    add al,0x18
    mov var1,al
    }putch(var1);_asm{mov al,var1 
    add al,0x03
    mov var1,al
    }putch(var1);_asm{mov al,var1 
    sub al,0x06
    mov var1,al
    }putch(var1);_asm{mov al,var1 
    sub al,0x08
    mov var1,al
    }putch(var1);_asm{mov al,var1 
    sub al,0x43
    mov var1,al
    }putch(var1);}
    


  • #include <iostream>
    int main() { std::string buf(10, 0), code("++++++++++[>++++>+++"
    "+++++++>+++++++<<<-]>>>++.<+.+++++++..+++.<++++.<+++[>----<-]>"
    ".>++++++++.--------.+++.------.--------.<<+++[>++++<-]>++.<+++"
    "+++++++."); for(std::string::iterator i = code.begin(), end =
    code.end(), j = buf.begin(); i != end; ++i) switch(*i){ case '>'
    : ++j; break; case '<': --j; break; case '+': ++*j; break; case
    '-': --*j; break; case '.': std::cout << *j; break; case ',':
    std::cin >> *j; break; case '[': if(*j == 0) for(int x = 1;;) if
    (*++i == '[') ++x; else if(*i == ']') if(--x == 0) break; break;
    case ']': if(*j != 0) { for(int x = 1;;) if(*--i == ']') ++x;else
    if(*i == '[') if(--x == 0) break; --i; } break; default: break;}}
    

    Viel Spaß beim nachvollziehen! :xmas1:



  • brainfuck?



  • otze schrieb:

    brainfuck?

    Röschtösch! Man könnte da noch nen Stack einbauen, aber dann sähe es wieder zu einfach aus 😃 .



  • Leute, Codeformatierung???? 🤡
    Wenn man's so durchschaut, wird mein Hello World immer kleiner und einfacher 😮 😉
    Solche Listings sind was tolles für Leute die sich "mal eben kurz C++ beibringen" lassen wollen von mir (mal abgesehen davon, dass ich ziemlich bescheidene C++ Routine/Kentnisse habe) 😉 Na klar, Lektion 1, hello world... -> schon sind sie nich' mehr so interessiert 🙂
    MfG
    me



  • Bashar schrieb:

    Hab ich vielleicht schonmal gepostet, aber egal:

    char main[] = { 0xE8, 13, 0, 0, 0, 'H', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r',
    'l', 'd', '!', '\n' , 0x59, 0xB8, 4, 0, 0, 0, 0xBB, 1, 0, 0, 0, 0xBA, 13, 0,
    0, 0, 0xCD, 0x80, 0xB8, 1, 0, 0, 0, 0xBB, 0, 0, 0, 0, 0xCD, 0x80 };
    

    (linux/x86 only)

    Und wie kompilier ich das ohne dass es Fehler gibt?
    Bin kein Linux Guru, aber dafür würd ich sogar die Knoppix-CD suchen 😃



  • Quelltext in datei.c speichern, gcc datei.c, ./a.out, Ausgabe bewundern.

    Warum sollte das Fehler geben?





  • CSS schrieb:

    http://www.c-plusplus.net/evolution.htm

    MfG CSS

    Ist ja in veraltetem Stil und noch dazu fehlerbehaftet 😞

    MfG SideWinder


Anmelden zum Antworten