Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » objekt einer klasse

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 ] [ 2 ] > 3 < [ 4 ]
020
03.09.2003, 17:18 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


wenn man mit den gotos sparsam umgeht und innerhalb einer seite springt können sie manchmal wesentlich übersichtlicheren und einfacheren code erzeugen als komplzierte if konstrukte (Finde ich zumindest)
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
021
03.09.2003, 17:21 Uhr
Pablo
Supertux
(Operator)



Zitat:
~bussibär postete
ich denke mein Programm ist so überschaubar...

ich verwende eigentlich nie globale variablen, aber in einer ausnahme geht das schon...


...so lange man keine GOTO's hernimmt



Da bin ich @beefys Meinung. Ich benutze keine GOTOs, das ist mir zu BASIC mäßig, aber manchmal gibt es keine andere Möglichkeit. Man muss sehr hart kämpfen, um GOTOS zu vermeiden, nur GOTOs benutzen, wenn es keine andere Möglichkeit gibt
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 03.09.2003 um 17:21 Uhr von Pablo Yanez Trujillo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
022
03.09.2003, 17:24 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


wie was keine Möglichkeit!!!
Es gibt immer ne Möglichkeit das goto zu vermeiden. Die Frage ist nur welchen Aufwand das mal wieder bedeutet und wie unübersichtlich der Code dabei wird. Oder hat etwa jemand ein Beispiel auf der Pfanne, welches sich nur mit nem goto lösen lässt. Das würde ich allerdings gerne sehen
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
023
03.09.2003, 17:47 Uhr
0xdeadbeef
Gott
(Operator)


gotos sind ähnlich des Teufels wie cookies oder globale Variablen. Jedenfalls ist das meine Meinung dazu.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
024
03.09.2003, 17:51 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Na ganz so schlimm wirds schon nicht sein.
Wenn dein Code in assembler übersetzt wird, sinds ja am ende alles gotos
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
025
03.09.2003, 17:51 Uhr
0xdeadbeef
Gott
(Operator)


Dann muss ich mich aber auch nicht mehr damit rumschlagen, sondern die Maschine. Und die braucht keinen Überblick.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
026
03.09.2003, 17:59 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Ok akzeptiert
Aber falls du mal assembler proggen musst bist du gleich in übung bzw. kannst dich dann gleich besser in dieses "kranke" Sprungschema reindenken
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
027
03.09.2003, 18:54 Uhr
virtual
Sexiest Bit alive
(Operator)


Zwar ist die Aussage wahr, daß es immer ohne goto geht; allerdings sollte nicht verschwiegen werden, daß dies uU Aufwand bedeutet, wie Pablo andeutet

C++:
void f()
{
    for(int i=0; i<10; ++i)
    {
        for(int j=0; j<10; ++j)
        {
            if (something())
               goto ende;
            other_stuff();
        }
        otherstuf();
    }
ende:
    something_else();
}


Gehen wir mal die Alternativen durch (mir sind natürlich auch nicht alle geläufig):

Das Offensichtliche zuerst:

C++:
void f()
{
    for(int i=0; i<10 &&; ++i)
    {
        bool sth_took_place = false;
        for(int j=0; j<10; ++j)
        {
            sth_took_place = something();
            if (sth_took_place)
               break;
            other_stuff();
        }
        if (sth_took_place)
            break;
        otherstuf();
    }
    something_else();
}
/* --edit: Korrektur, Besseres Scoping der Locals


Direkt einfacher sieht es nicht aus...

Tja, dann

C++:
class breaker { };
void f()
{
    try
    {
        for(int i=0; i<10; ++i)
        {
            for(int j=0; j<10; ++j)
            {
                if (something()) throw breaker();
                other_stuff();
            }
            otherstuf();
        }
    }
    catch(breaker&)
    {
    }
    something_else();
}


Würde ich rein von der Struktur her bevorzugen; von der Performance jedoch nicht. Wenn man das auch mehrfach verwenden wollte, muß man da ein - hier häßliches Template basteln, sonst besteht die Gefahr, daß man mit breaker-Exeptions aus unterschiedlichen funktionen gemassel bekommt.

C++:
template<void* p>class breaker { };
void f()
{
    typedef breaker<(void*)f> f_breaker;
    try
    {
        for(int i=0; i<10; ++i)
        {
            for(int j=0; j<10; ++j)
            {
                if (something()) throw f_breaker();
                other_stuff();
            }
            otherstuf();
        }
    }
    catch(f_breaker&)
    {
    }
    something_else();
}



Super geil wäre natürlich

C++:
void f()
{
    for(int i=0; i<10; ++i)
    {
        for(int j=0; j<10; ++j)
        {
            if (something())
               break(2);
            other_stuff();
        }
        otherstuf();
    }
    something_else();
}


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

Dieser Post wurde am 03.09.2003 um 19:02 Uhr von virtual editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
028
03.09.2003, 19:01 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


in diesem Fall würde ich versuchen das alles mit nur einer schleife abzuhandeln
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
029
03.09.2003, 19:03 Uhr
virtual
Sexiest Bit alive
(Operator)


Ist doch nur ein simples Beispiel. Nimm an, daß something als parameter i und j erwartet.
--
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
Seiten: [ 1 ] [ 2 ] > 3 < [ 4 ]     [ C / C++ (ANSI-Standard) ]  


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: