Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Rätselecke » 48. Virtualrästel: Best misuse of operator overloading

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
19.09.2003, 16:01 Uhr
virtual
Sexiest Bit alive
(Operator)


Um Euch die Aufgabe schmackhaft zu machen hier ein Source beispiel:

C++:
[b]
include <iostream>

enum BOOL
{
    FALSE,
    TRUE
};
[/b]
const char* operator + (BOOL base, BOOL index)
{
    return base&&index? "Hello, ":"World!";
}
[b]
#define true TRUE
#define false FALSE

int main()
{
    std::cout<<(true+true)<<(true+false)<<std::endl;
}
[/b]


Das Programm gibt "Hello, World" aus.
Zu programmieren sind Programme dieser Art, wobei das schrecklichste Programm dieser Art gesucht ist. Um die Sache ein wenig spannend zu halten, sollten Lösungvorschläge immer nur die Ausgabe des Programms sowie die Teile enthalten, die oben fett gedruckt sind (nach angemessener Zeit sind die Operatoren aber auch zu posten!).

Erlaubt sind folgende Dinge:
1. Verwendung von eingebauten Datentypen und STL.
2. #defines nur, um Datentypen umzudefinieren
3. Jede Art von Operatoroverloading
4. Keine weiteren Funktionen ausser überladenen Operatoren und main.

Das Programm sollte fehlerfrei compilerbar sein und ANSI C++ sein.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)

Dieser Post wurde am 19.09.2003 um 16:03 Uhr von virtual editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
19.09.2003, 17:37 Uhr
kronos
Quotenfisch
(Operator)


fett gedruckt??
--
main($)??<-$<='?'>>2?main($-!!putchar(
(("$;99M?GD??(??/x0d??/a:???;a"+'?'/4)
??($??)+'?'/3-2-1+$%2)??''?')):'?';??>
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
19.09.2003, 17:46 Uhr
virtual
Sexiest Bit alive
(Operator)


Schick nur Ausgabe und den Quelltext ohne Operatoren. Dann kannst Du nichts flsahc machen
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
20.09.2003, 14:22 Uhr
0xdeadbeef
Gott
(Operator)


Meine Hello, World - Idee:

C++:
#include <iostream>

typedef enum { } say;

//...

int main() {
  say Hello, World;
  Hello, World;
}


Ausgabe:

Code:
Hello, World;


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 20.09.2003 um 14:24 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
20.09.2003, 15:25 Uhr
virtual
Sexiest Bit alive
(Operator)


Das schaut doch schon nett aus
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
20.09.2003, 19:51 Uhr
~(un)wissender
Gast


@0xdeadbeef
Sehr geil, schreib mal ein Anfängerbuch, wo du nur "Umgangsprache" mit enums und typedefs verwendest!
Das wird der Renner, nie war C++ einfacher oder der Computer menschlicher!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
20.09.2003, 19:57 Uhr
virtual
Sexiest Bit alive
(Operator)


@beefy
Wie ist eigentlich die Ausgabe von

C++:
#include <iostream>

typedef enum { } say;

//...

int main() {
  say Hello, World;
  World, Hello;
}


?
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
20.09.2003, 21:49 Uhr
0xdeadbeef
Gott
(Operator)


@(un)wissender: Du hast nie Applescript-Code gesehen, oder?

@virtual: Das wäre auch

Code:
Hello, World;


Der Operator ist simplerweise:

C++:
void operator,(say, say){std::cout << "Hello, World;" << std::endl;}


Wäre auch schwierig, nur mit Operatorüberladung da ein anderes Verhalten zu basteln...
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 20.09.2003 um 21:52 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
20.09.2003, 22:21 Uhr
virtual
Sexiest Bit alive
(Operator)


Oh, der Operator könnte ja auch statische Variablen enthalten:

C++:
void operator,(say, say)
{
   static int i = 0;
   const char* s[] = { "Hallo, ", "World\n", "Na du,", "wie gehts?\n" };
   std::cout << s[i++%4];
}


--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)

Dieser Post wurde am 20.09.2003 um 22:22 Uhr von virtual editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
20.09.2003, 22:26 Uhr
0xdeadbeef
Gott
(Operator)


Allerdings wird der Operator im Hauptprogramm nur einmal ausgeführt.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Rätselecke ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: