🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: de.comp.lang.c++
8 messages
8 total messages Started by Hans Kratz Wed, 27 Sep 1995 13:31
Unnoetige Einschraenkungen in C++
#481
Author: Hans Kratz
Date: Wed, 27 Sep 1995 13:31
47 lines
1792 bytes
Hi!

Mir ist beim Programmieren mit C++ aufgefallen, dass manche Konzepte
einige Schwaechen aufweisen, die mit geringem Aufwand zu beseitigen
waeren.

Bitte postet Eure Meinung, ob Ihr solche features fuer sinnvoll
haltet und ob Ihr Gruende kennt, warum sie nicht implementiert sind.

Also:

Wenn man schon striktes Typ-checking hat, warum kann man nur fuer die
letzten Parameter einer Funktion default-Werte setzen.

Beispiel:

Deklaration:
	void foo(int a, int b, int c=0);
Aufruf:
	foo(1,2,3); oder foo(1,2);

Warum nicht auch:

Deklaration:
	void foo(int a, int b=0, int c);
Aufruf:
	foo(1,,2); oder foo(1,2,3);

Im Zusammenhang damit waere beim Aufruf eine Namenskonvention fuer
Parameter sinnvoll, der Compiler muesste dann zuordnen:

Deklaration:
	void foo(int a=0,int b=0,int c=0);
Aufruf:
	foo(a:1,b:2); oder foo(c:2,b:1,a:0);

Ich warte auf Eure postings :)

Hans

--
-----------------------------------------------------------
| Hans Kratz                          /  snailmail:       |
| email: uk5o.rz.uni-karlsruhe.de    /   Admonter Ring 26 |
| phone: +49 6404 7504              /    35415 Pohlheim   |
| fax:   +49 6404 63189            /     Germany          |
-----<<< address and phone number will change soon >>>-----
Re: Unnoetige Einschraenkungen in C++
#493
Author: Ralf W. Stephan
Date: Thu, 28 Sep 1995 06:28
6 lines
471 bytes
Stimmt, das nervt mich auch immer wieder... 8)


ralf
--
PGP: 1024/0xA713ECE9 2047/0xC8E605F5
Re: Unnoetige Einschraenkungen in C++
#483
Author: Robert Risack
Date: Thu, 28 Sep 1995 09:46
43 lines
1993 bytes
uk5o@rzstud1.rz.uni-karlsruhe.de (Hans Kratz) writes:

>Hi!
Auch hi

>Mir ist beim Programmieren mit C++ aufgefallen, dass manche Konzepte
>einige Schwaechen aufweisen, die mit geringem Aufwand zu beseitigen
>waeren.
[...]
>Wenn man schon striktes Typ-checking hat, warum kann man nur fuer die
>letzten Parameter einer Funktion default-Werte setzen.
[...]
>Warum nicht auch:
>Deklaration:
>	void foo(int a, int b=0, int c);
>Aufruf:
>	foo(1,,2); oder foo(1,2,3);

Ziemlich ueberfluessig. In den meisten, wenn nicht in allen, stoert
	void foo(int a, int c, int b=0);
ueberhaupt nicht.

>Im Zusammenhang damit waere beim Aufruf eine Namenskonvention fuer
>Parameter sinnvoll, der Compiler muesste dann zuordnen:
>Deklaration:
>	void foo(int a=0,int b=0,int c=0);
>Aufruf:
>	foo(a:1,b:2); oder foo(c:2,b:1,a:0);

Bloss nicht. Dann waeren Implementierungsdetails wesentlich fuer die
Anwendung. Stell Dir vor, jemand wollte, zwecks besserer Lesbarkeit,
die Variablennamen in was anderes aendern. An der Funktionalitaet
von foo aendert sich nichts, aber alle muessten ihre Programme
umschreiben.

Satz mit X - war wohl niX. Aber nicht aufgeben ;)

---
   | '.        ..            | Robert Risack  | Jeder ist Auslaender - fast
, s|  __/    <___>  __/ o    |   _            | ueberall. Everybody is a
`--' /..  /        / .  / /  | PObEPT P|/|3AK | foreigner - almost everywhere.
       Robert Risack - Gebbertstr. 12 - 91052 Erlangen - FR Germany
       WWW: http://wwwcip.informatik.uni-erlangen.de/user/rtrisack
Re: Unnoetige Einschraenkungen in C++
#484
Author: Benjamin Baermann
Date: Thu, 28 Sep 1995 11:10
8 lines
840 bytes
Und? Was soll das bringen? Eine Spracherweiterung sollte man doch nur
machen, wenn damit ein echter Vorteil verbunden ist, oder?

Gruesse, Benni
-- 
benni@informatik.uni-frankfurt.de|http://www.uni-frankfurt.de/gnomic/hello.html
    "Deshalb, Leute, die glauben, dass Computer werden nicht koennen, wie
      Menschen zu denken, auch glaubt nicht in Maschine-Uebersetzung."
Re: Unnoetige Einschraenkungen in C++
#490
Author: Ralf Muschall
Date: Thu, 28 Sep 1995 16:05
32 lines
1463 bytes
In article <44dqtl$ev6@cd4680fs.rrze.uni-erlangen.de> rtrisack@cip.informatik.uni-erlangen.de (Robert Risack) writes:

: uk5o@rzstud1.rz.uni-karlsruhe.de (Hans Kratz) writes:

: >Deklaration:
: >	void foo(int a=0,int b=0,int c=0);
: >Aufruf:
: >	foo(a:1,b:2); oder foo(c:2,b:1,a:0);

: Bloss nicht. Dann waeren Implementierungsdetails wesentlich fuer die
: Anwendung. Stell Dir vor, jemand wollte, zwecks besserer Lesbarkeit,
: die Variablennamen in was anderes aendern. An der Funktionalitaet
: von foo aendert sich nichts, aber alle muessten ihre Programme
: umschreiben.

Das k"onnte man mit der Deklaration

void foo(int x=0:key a, int y=0:key b, int c=0:key c);

umgehen. 

Halten w"urde ich davon allerdings nichts - C++ ist schon so viel
zu vollgem"ullt :-)

Ralf

--
-- 
to get PGP keys: finger prm@cnve.rz.uni-jena.de (or from public key servers)
pgp public key fingerprints:
A3 93 A6 0B E2 8F 04 25  5B 3C 00 F6 55 E5 64 20  [1024 bit]
64 36 31 D8 7A 73 20 F7  CA 6A DA 02 AF 29 46 1C  [2047 bit]
Re: Unnoetige Einschraenkungen in C++
#511
Author: Joachim Zobel
Date: Tue, 03 Oct 1995 00:32
40 lines
1604 bytes
uk5o@rzstud1.rz.uni-karlsruhe.de (Hans Kratz) wrote:
>Wenn man schon striktes Typ-checking hat, warum kann man nur fuer die
>letzten Parameter einer Funktion default-Werte setzen.

>Beispiel:

>Deklaration:
>	void foo(int a, int b, int c=0);
>Aufruf:
>	foo(1,2,3); oder foo(1,2);

>Warum nicht auch:

>Deklaration:
>	void foo(int a, int b=0, int c);
>Aufruf:
>	foo(1,,2); oder foo(1,2,3);

Warum nicht:

const int bDflt = 0;
...
foo(1,bDflt,2);

Ich bin durchaus schreibfaul, aber gibt es sonst irgendeinen
vernünftigen Grund für dflt-Args in der Mitte?

Der Nutzen von dflt-Args ist doch der: Ich habe eine Funktion
geschrieben und auch schon einen Haufen Aufrufe derselben, evtl. rufen
auch schon andere meine Funktion auf. Dann stelle ich fest, das ich
einen Spezielfall implementiert habe. Die richtige, allgemeine und
vernünftige Funktion müsste eigentlich einen Parameter mehr haben.
Tja, gut, das es...

Wobei aber helfen dflt-args in der Mitte?

Joachim

"Man faengt Forellen mit der Hand, indem man zuerst ihr Vertrauen gewinnt 
und es dann missbraucht."                              Robert A. Heinlein
Re: Unnoetige Einschraenkungen in C++
#510
Author: Joachim Zobel
Date: Tue, 03 Oct 1995 00:42
40 lines
1605 bytes
uk5o@rzstud1.rz.uni-karlsruhe.de (Hans Kratz) wrote:
>Wenn man schon striktes Typ-checking hat, warum kann man nur fuer die
>letzten Parameter einer Funktion default-Werte setzen.

>Beispiel:

>Deklaration:
>	void foo(int a, int b, int c=0);
>Aufruf:
>	foo(1,2,3); oder foo(1,2);

>Warum nicht auch:

>Deklaration:
>	void foo(int a, int b=0, int c);
>Aufruf:
>	foo(1,,2); oder foo(1,2,3);

Warum nicht:

const int bDflt = 0;
...
foo(1,bDflt,2);

Ich bin durchaus schreibfaul, aber gibt es sonst irgendeinen
vernünftigen Grund für dflt-Args in der Mitte?

Der Nutzen von dflt-Args ist doch der: Ich habe eine Funktion
geschrieben und auch schon einen Haufen Aufrufe derselben, evtl. rufen
auch schon andere meine Funktion auf. Dann stelle ich fest, das ich
einen Spezielfall implementiert habe. Die richtige, allgemeine und
vernünftige Funktion müsste eigentlich einen Parameter mehr haben.
Tja, gut, das es...

Wobei aber helfen dflt-args in der Mitte?

Joachim

"Man faengt Forellen mit der Hand, indem man zuerst ihr Vertrauen gewinnt 
und es dann missbraucht."                              Robert A. Heinlein
Re: Unnoetige Einschraenkungen in C++
#512
Author: Joachim Zobel
Date: Tue, 03 Oct 1995 02:26
40 lines
1605 bytes
uk5o@rzstud1.rz.uni-karlsruhe.de (Hans Kratz) wrote:
>Wenn man schon striktes Typ-checking hat, warum kann man nur fuer die
>letzten Parameter einer Funktion default-Werte setzen.

>Beispiel:

>Deklaration:
>	void foo(int a, int b, int c=0);
>Aufruf:
>	foo(1,2,3); oder foo(1,2);

>Warum nicht auch:

>Deklaration:
>	void foo(int a, int b=0, int c);
>Aufruf:
>	foo(1,,2); oder foo(1,2,3);

Warum nicht:

const int bDflt = 0;
...
foo(1,bDflt,2);

Ich bin durchaus schreibfaul, aber gibt es sonst irgendeinen
vernünftigen Grund für dflt-Args in der Mitte?

Der Nutzen von dflt-Args ist doch der: Ich habe eine Funktion
geschrieben und auch schon einen Haufen Aufrufe derselben, evtl. rufen
auch schon andere meine Funktion auf. Dann stelle ich fest, das ich
einen Spezielfall implementiert habe. Die richtige, allgemeine und
vernünftige Funktion müsste eigentlich einen Parameter mehr haben.
Tja, gut, das es...

Wobei aber helfen dflt-args in der Mitte?

Joachim

"Man faengt Forellen mit der Hand, indem man zuerst ihr Vertrauen gewinnt 
und es dann missbraucht."                              Robert A. Heinlein
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads