C++Talk.NET Forum Index C++Talk.NET
C++ language newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Array
Goto page 1, 2, 3 ... 13, 14, 15  Next
 
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (German)
View previous topic :: View next topic  
Author Message
server
Guest





PostPosted: Thu Jan 26, 2006 7:02 pm    Post subject: Array Reply with quote



message unavailable
Back to top
Falk Tannhäuser
Guest





PostPosted: Thu Jan 26, 2006 7:02 pm    Post subject: Re: Array Reply with quote



Frank Mockenhaupt wrote:
Quote:
Wie kann ich alle Elemente eines Arrays direkt bei der Deklaration mit
einem (Start-)Wert definieren?

Meinst sicher "initialisieren".

int const arr[] = { 32, 16, 8 };

MfG
Falk

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
Back to top
Frank Mockenhaupt
Guest





PostPosted: Thu Jan 26, 2006 8:37 pm    Post subject: Re: Array Reply with quote



Hallo;
Ich meine, wie ich alle Elemente eines Arrays beim Start mit einem Wert
initialisieren kann ohne explizit jeden Wert einzeln angeben zu müsse.
z.B. int array[] = {0,0,0,0}

MfG

Falk Tannhäuser schrieb:
Quote:
Frank Mockenhaupt wrote:
Wie kann ich alle Elemente eines Arrays direkt bei der Deklaration mit
einem (Start-)Wert definieren?

Meinst sicher "initialisieren".

int const arr[] = { 32, 16, 8 };

MfG
Falk


--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
Back to top
Christian Sulzer
Guest





PostPosted: Thu Jan 26, 2006 10:14 pm    Post subject: Re: templates und friend-Funktionen Reply with quote

Marcel Müller wrote:

Quote:
template <size_t t
struct foo
{
friend foo<t>& operator << (foo<t> &f, int i);
};


IMO ist der Operator << doch vergleichbar mit ein Funktionstemplate, daß
seinen eigenen Templateparameter benötigt ?

Quote:
template <size_t t
foo<t>& operator << (foo<t> &f, int i) { return f; }

?

Das gibt zumindest bei VC++7.1 einen Linkerfehler (Definition von
operator << nicht gefunden). Also Deklaration != Definition.

Quote:

Das andere definiert ja für jede Variante von foo nochmal einen Operator
, den es für jeden Integer u gibt. Kurzum es dürfte nicht nur der
eigene << Operator als friend drauf, sondern auch jeder andere.


Also da habe ich was grundsätzlich falsch verstanden. Ich dachte, der
operator << ist in diesem Fall wie eine freie Funktion zu behandeln, zu
der sich die Klasse foo als friend verhält.

Quote:
Gleichwohl spricht aus meiner Sicht nichts dagegen, dass jeder Operator
(foo<u>&,int) zu jedem foo<t> friend ist. (Beachte u != t)


Davon ging ich eigentlich aus.

Quote:
Vielleicht hilft ihm ein

struct foo;
template <size_t u
foo<u>& operator << (foo<u> &f, int i);

vor der Klassendefinition auf die Sprünge.


Hat leider nix bewirkt. Dieselbe Fehlermeldung. Die Korrektur deines
nachfolgenden Postings habe ich berücksichtigt.
ich vermute auch, daß es sich um einen Compilerbug handelt. Der g++
hat's ja ohne zu meckern gefressen ;-)

Quote:

Marcel


Besten Dank nochmal,
Chris

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
Back to top
Stefan Reuther
Guest





PostPosted: Thu Jan 26, 2006 10:22 pm    Post subject: Re: function template nur in header-d atei möglich? Reply with quote

Dietmar Kuehl wrote:
Quote:
Rolf Magnus wrote:
Ich hatte angenommen, daß es gerade um die organisatorische Sicht geht.
Die Implementationen stehen physikalisch nicht in der Header-Datei,
sondern wie von den anderen Klassen gewohnt in einer
extra-Implementationsdatei. Wie das aus Compiler-Sicht aussieht, ist dabei
doch eigentlich egal, oder?

Das sehe ich anders! Wenn man z.B. mit Optimierung compiliert, dann
kann es ganz schnell zu langen Compilierzeiten kommen, wennn man
komplexe Template-Systeme in Headern implementiert.

Dafür ist es aber irrelevant, ob der viele Extra-Code im Header oder in
einer physikalisch anderen Datei steht. Wenn der Code da ist, kostet er
Compilezeit. Und wenn der Entwickler sein Handwerk versteht, ist der
Code nur dann da, wenn es wirklich unbedingt notwendig ist. Und wenn
also die Notwendigkeit besteht, viel Template-Code in einem Header
unterzubringen, ist die Trennung in ".h" und inkludierte ".cc" durchaus
nicht unpraktisch. Da kann man z.B. die "zeige-mir-die-Definition-
dieser-Funktion"-Funktion seines Editors benutzen.

Dass es damit leicht ist, Bloat und ewig lange brauchende Compilerläufe
zu fabrizieren, ist natürlich klar. Aber dass es in C++ besonders
einfach ist, durch Nachlässigkeit Bloat zu erzeugen, ist glaube ich
nichts neues.


Stefan

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
Back to top
Thomas Maeder
Guest





PostPosted: Thu Jan 26, 2006 10:23 pm    Post subject: Re: std::cout << NULL Reply with quote

Bob Hairgrove <invalid (AT) bigfoot (DOT) com> writes:

Quote:
Irgendwo hatte ich gelesen oder gehört, dass NULL-Zeiger auf manche
Betriebssysteme (IBM OS/400, vielleicht?) intern nicht mit dem Wert
0 darstellen...weiss jemand hier evtl. Näheres?

Es ist nicht nur eine Frage des Betriebssystems, sondern der
Implementation der Programmiersprache. Ich erinnere mich an einen
Modula-2-Compiler für DOS, dessen NULL-Zeiger auf eine bestimmte
reservierte Speicherstelle zeigte. Wenn der Wert des Werts an dieser
Stelle während der Ausführung des Programms verändert wurde,
dereferenzierte das Programm mit sehr guter Wahrscheinlichkeit einen
NULL-Zeiger.

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
Back to top
Thomas Maeder
Guest





PostPosted: Thu Jan 26, 2006 10:26 pm    Post subject: Re: templates und friend-Funktionen Reply with quote

Marcel Müller <news.5.maazl (AT) spamgourmet (DOT) com> writes:

Quote:
Hallo!

Warum nicht so:

template <size_t t
struct foo
{
friend foo<t>& operator << (foo<t> &f, int i);

Das deklariert eine gewöhnliche Funktion (kein Template).

Quote:
};

template <size_t t
foo<t>& operator << (foo<t> &f, int i) { return f; }

Das definiert ein Template.


Quote:
Das andere definiert ja für jede Variante von foo nochmal einen
Operator <<, den es für jeden Integer u gibt. Kurzum es dürfte nicht
nur der eigene << Operator als friend drauf, sondern auch jeder andere.

Gleichwohl spricht aus meiner Sicht nichts dagegen, dass jeder
Operator <<(foo<u>&,int) zu jedem foo<t> friend ist. (Beachte u != t)

Ich vermute, MSVC hat es mal wieder versiebt. (Sorry, hatte mit MSVC
7.0 und 7.1 mit C++ auch schon mächtig "Spaß".)

Vielleicht hilft ihm ein

struct foo;
template <size_t u
foo<u>& operator << (foo<u> &f, int i);

vor der Klassendefinition auf die Sprünge.

.... und die friend-Deklaration muss dann

friend foo<t>& operator << <>(foo<t> &f, int i);

lauten, damit sie sich auf eine Spezialisierung des Templates bezieht.

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
Back to top
Stefan Reuther
Guest





PostPosted: Thu Jan 26, 2006 10:27 pm    Post subject: Re: std::cout << NULL Reply with quote

Bob Hairgrove wrote:
Quote:
Irgendwo hatte ich gelesen oder gehört, dass NULL-Zeiger auf manche
Betriebssysteme (IBM OS/400, vielleicht?) intern nicht mit dem Wert 0
darstellen...weiss jemand hier evtl. Näheres?

Auch auf solchen Maschinen ist '0' ein Nullpointer und 'cout << NULL'
muss die Ausgabe "0" ergeben.

Den Zeiger mit der Repräsentation 0 würdest du auf so einer Maschine
z.B. mit 'int i = 0; char* p = (char*) i' erhalten.


Stefan

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
Back to top
Marcel Müller
Guest





PostPosted: Fri Jan 27, 2006 2:21 am    Post subject: Re: templates und friend-Funktionen Reply with quote

Thomas Maeder wrote:
Quote:
Marcel Müller <news.5.maazl (AT) spamgourmet (DOT) com> writes:

friend foo<t>& operator << (foo<t> &f, int i);

Das deklariert eine gewöhnliche Funktion (kein Template).

Ja, stimmt, nächster Fehler.
Muss heissen:

friend foo<t>& operator << <>(foo<t> &f, int i);

(Wenn man einmal etwas nicht gleich ausprobieren kann.)
Das habe ich aber jetzt getestet!


Marcel

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
Back to top
Dietmar Kuehl
Guest





PostPosted: Fri Jan 27, 2006 6:16 am    Post subject: Re: Array Reply with quote

Frank Mockenhaupt wrote:
Quote:
Ich meine, wie ich alle Elemente eines Arrays beim Start mit einem Wert
initialisieren kann ohne explizit jeden Wert einzeln angeben zu müsse.
z.B. int array[] = {0,0,0,0}

Für Arrays, die mit Null initialisiert werden sollen ist das einfach:

int array[10] = {};

Für den Fall, dass man einen anderen Wert haben möchte, muß man
allerdings die Notation etwas ändern:

std::vector<int> array(10, 17);
--
<mailto:dietmar_kuehl (AT) yahoo (DOT) com> <http://www.dietmar-kuehl.de/>
<http://www.eai-systems.com> - Efficient Artificial Intelligence

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
Back to top
kanze
Guest





PostPosted: Fri Jan 27, 2006 8:01 pm    Post subject: Re: function template nur in header-datei möglich? Reply with quote

Stefan Reuther wrote:
Quote:
Dietmar Kuehl wrote:
Rolf Magnus wrote:
Ich hatte angenommen, daß es gerade um die organisatorische
Sicht geht. Die Implementationen stehen physikalisch nicht
in der Header-Datei, sondern wie von den anderen Klassen
gewohnt in einer extra-Implementationsdatei. Wie das aus
Compiler-Sicht aussieht, ist dabei doch eigentlich egal,
oder?

Das sehe ich anders! Wenn man z.B. mit Optimierung
compiliert, dann kann es ganz schnell zu langen
Compilierzeiten kommen, wennn man komplexe Template-Systeme
in Headern implementiert.

Dafür ist es aber irrelevant, ob der viele Extra-Code im
Header oder in einer physikalisch anderen Datei steht. Wenn
der Code da ist, kostet er Compilezeit.

Das stimmt nur teilweise. Wenn ich eine Klasse C mit den
Funktionnen f(), g() und h() definiere, liest der Compiler bei
der Compilierung von Client-Code lediglich nur die
Klassen-Definition, nicht aber die Definitionen der Funktionnen.
Auch dann, wenn ich die Funktion aufrufe. Ist aber C ein
Template, dann liest der Compler die ganzen
Funktiondefinitionnen bei jeder Compilierung von Client-Code.
Und häufig, wenn ich die Funktion f() aufrufe, wird sie auch
vollig kompliliert -- wenn ich sie in zwanzig unterschiedenen
Moduln benutze, dann wird bei einem kompletten Build derselbe
Code zwanzigmal compiliert, statt nur einmal.

Quote:
Und wenn der Entwickler sein Handwerk versteht, ist der Code
nur dann da, wenn es wirklich unbedingt notwendig ist.

Die meisten Compiler sagen, dass die vollständige Definition der
Funktion notwendig ist, sofort die Funktion einen Template ist,
und benutzt wird. Bei nicht Templates kann ich die Funktion
benutzen, ohne dass der Compiler seine Implementierung sieht.

--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
Back to top
Peter Maas
Guest





PostPosted: Thu Mar 02, 2006 3:50 am    Post subject: Re: C/C++ Buch für 12jährigen: Empfehl ung? Reply with quote

Sascha T. schrieb:
Quote:
Allerdings habt ihr recht, eine alternative Sprache wäre durchaus sinnvoll.
Doch Python ist mir zu weit weg von der C-Syntax, ich denke, ich werde mir
nochmal über Perl gedanken machen!

Das ist noch weiter weg von der C-Syntax oder gibt es in C "unless", ~=,
$@& vor Variablen/Funktionen etc.? Abgesehen davon ist die syntaktische
Ähnlichkeit ziemlich unwichtig.

Peter Maas, Aachen

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
Back to top
Richard
Guest





PostPosted: Thu Mar 02, 2006 10:06 am    Post subject: Re: C/C++ Buch für 12jährigen: Empfehl ung? Reply with quote

Peter Maas wrote:
Quote:
Sascha T. schrieb:
Allerdings habt ihr recht, eine alternative Sprache wäre durchaus
sinnvoll. Doch Python ist mir zu weit weg von der C-Syntax, ich denke,
ich werde mir
nochmal über Perl gedanken machen!


Perl irgend einem Anfänger zu empfehlen ist keine gute Idee.
Perl ist ne Sprache, die für nen Anfänger sehr verwirrend ist und man
lernt dabei wohl kaum ordentlich programmieren.

Ich finde Java z.B. ehere dafür geeignet jemanden nen ordentlichen
Programmierstil beizubringen, auch C# ist da ne gute Idee.


Quote:

Das ist noch weiter weg von der C-Syntax oder gibt es in C "unless", ~=,
$@& vor Variablen/Funktionen etc.? Abgesehen davon ist die syntaktische
Ähnlichkeit ziemlich unwichtig.

Jo oder $_, %hash, $hash{'item'}. Außerdem gibts mein manchen Dingen
verschiedene Schreibweisen die ein und dasselbe tun:-)

Quote:

Peter Maas, Aachen


--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
Back to top
Raymond Haeb
Guest





PostPosted: Thu Mar 02, 2006 12:06 pm    Post subject: Re: C/C++ Buch für 12jährigen: Empfehlung? Reply with quote

Richard <burj-al-arab (AT) gmx (DOT) de>:
Quote:
Ich finde Java z.B. ehere dafür geeignet jemanden nen ordentlichen
Programmierstil beizubringen, auch C# ist da ne gute Idee.

also ich finde grade java und eigendlich alle garbage-collectorbasierten
Sprachen für eher ungeeignet für Anfänger. Damit gewöhnt man sich nur
einen schlechten Stil an, indem Objekte erzeugt werden und man nicht
sicher weiß wann (und ob!) diese wieder zerstört werden. Deshalb kann
man zb nicht im Konstruktor Resourcen belegen und im Destruktor wieder
freigeben. Genaugenommen wird der Destruktor in Java fast gar nicht verwendet.

Quote:
Peter Maas, Aachen

Raymond, Aachen

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
Back to top
Raymond Haeb
Guest





PostPosted: Thu Mar 02, 2006 2:06 pm    Post subject: Re: C/C++ Buch für 12jährigen: Empfehlung? Reply with quote

Rolf Magnus <ramagnus@t-online.de>:
Quote:
Es gibt Destruktoren in Java?

Ja, nennt sich (iirc) finalize.
Aber es wird halt nicht garantiert wann er aufgerufen
wird. Genaugenommen noch nicht mal ob. Es kann
Objekte geben die bis zum Programmende überleben.
Für die wird er gar nicht aufgerufen. Laut Doku soll
man sich darauf verlassen, daß das Betriebssystem dann
sowieso alles aufräumt. Mal davon abgesehn, daß ich das
auch für schlechten Stil halte, kann es Resourcen geben
die das BS nicht kennt, bzw nicht weiß daß sie zerstört werden
müssen zb temporäre Dateien.
Aber das wird langsam offtopic...



Raymond

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
Back to top
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (German) All times are GMT
Goto page 1, 2, 3 ... 13, 14, 15  Next
Page 1 of 15

 
 


Powered by phpBB © 2001, 2006 phpBB Group