Anfängerfragen

Kann mir vielleicht irgendjemand bei meinen ANfängerfragen helfen?

1.)Declaration Syntax Error
//Mein Code store.h
namespace bereich{ }

in einer sonst leeren HEaderdatei ein Declaration Syntax Error ist

2.)Warum ich mein Struct ebenfalls in einer HEaderdatei nicht:

//Mein Code store.h
struct st{int i};
typedef st& typ;
//ende
mit typedef verwenden kann (in einer .cpp funzt es so) aber:

//Anderer Code store.h

struct st2{int i};
typedef struct st2 typ2;
//ende

funktioniert.

3.) Warum ich nicht in ne header datei includen kann

4.)ist es richtig, dass es sich bei
f(char **chary);
nicht mehr um einen pointer handelt, sondern den Inhalt eines Arrays aus chars(Das als Argument für f genommen wird)?

5.)Stimmt es, dass der Operator

Hallo Meister,

geh mal unter http://www.erlenkoetter.de/html/downld1.htm . Vielleicht helfen die dort runterladbaren Codes in C++ weiter…

HTH
mfg M.L.

Danke aber:

Vielleicht helfen die dort runterladbaren Codes in C++
weiter…

ich kann unter den datein leider nichts spezifisches auf meine Fragen passendes finden!

Wenn mir jemand hier im Forum antworten könnte würde mir das echt viel bringen

Gruß rundell32

Ps. Tja Meister würd ich echt gern werden ;>

Kann mir vielleicht irgendjemand bei meinen ANfängerfragen
helfen?

1.)Declaration Syntax Error
//Mein Code store.h
namespace bereich{ }

in einer sonst leeren HEaderdatei ein Declaration Syntax Error
ist

also mit VC++6 gibt das keinen fehler.

2.)Warum ich mein Struct ebenfalls in einer HEaderdatei nicht:

//Mein Code store.h
struct st{int i};
typedef st& typ;
//ende
mit typedef verwenden kann (in einer .cpp funzt es so) aber:

//Anderer Code store.h

struct st2{int i};
typedef struct st2 typ2;
//ende

funktioniert.

struct st2
{
int i; // Strichpunkt!
};

3.) Warum ich nicht in ne header datei
includen kann

also normalerweise sollte das gehen.

4.)ist es richtig, dass es sich bei
f(char **chary);
nicht mehr um einen pointer handelt, sondern den Inhalt eines
Arrays aus chars(Das als Argument für f genommen wird)?

5.)Stimmt es, dass der Operator

1.)Declaration Syntax Error
//Mein Code store.h
namespace bereich{ }

in einer sonst leeren HEaderdatei ein Declaration Syntax Error
ist

also mit VC++6 gibt das keinen fehler.

Das heißt das liegt am Compiler? Ich verwende einen Borland compiler…

2.)Warum ich mein Struct ebenfalls in einer HEaderdatei nicht:

//Mein Code store.h
struct st{int i};
typedef st& typ;
//ende
mit typedef verwenden kann (in einer .cpp funzt es so) aber:

//Anderer Code store.h

struct st2{int i};
typedef struct st2 typ2;
//ende

funktioniert.

struct st2
{
int i; // Strichpunkt!
};

Also den Strichpunkt hab ich im wirklichen Code nicht vergessen(bloß ein Schreibfehler hier)
Mein Problem ist Variante 1 funktioniert und bei Variante 2 sagt der Compiler expecting ,

3.) Warum ich nicht in ne header datei
includen kann

also normalerweise sollte das gehen.

Fehlermeldung von meinem Compiler: Must use c++ for stdcomp.h
Ich blick das net mehr!

4.)ist es richtig, dass es sich bei
f(char **chary);
nicht mehr um einen pointer handelt, sondern den Inhalt eines
Arrays aus chars(Das als Argument für f genommen wird)?

Weiß vielleicht hierauf jemand noch eine ANtwort?

5.)Stimmt es, dass der Operator

#include"head.h"

void main(){
int i=5;
cout

6.) Könnte mir jemand vielleicht ein gutes Codebeispiel für
getrennte überstezung zeigen.

Mein Beispiel:
//test.cpp
#include
#include"head.h"

void main(){
int i=5;
cout

//head.h
void f(int);

//head.cpp
#include"head.h"
void f(int q){–q;}

Oh *g* sorry du hast natürlich recht handelt sich um einen Flüchtigkeitsfehler schreib den Code für das Forum hier immer ungetestet neu weil der Compiler auf einem anderen Pc ist.
Meine natürlich:

//head.h
int f(int);

//head.cpp
#include"head.h"
int f(int q){return --q;}

Kann mir jetzt vielleicht jemand helfen? was falsch ist?

Hallo Rundell32,

//head.cpp
#include"head.h"
int f(int q){return --q;}

Kann mir jetzt vielleicht jemand helfen? was falsch ist?

So funktioniert das nicht. Du kannst nicht
irgendeinen Code posten, der dann noch
zusätzliche Fehler enthält, und dann
erwarten, dass hier ein Urteil gefällt
werden kann.

Poste mal exakt den Code, den Du verwendest,
mit allen Leerzeichen, Zeilenumbrüchen et cetera.

Grüße

CMБ

Hier noch einmal gesammelt der komplette Code für mein Versuch getrennte Übersetzung umzusetzen. Mein Compiler sagt mir aber das f() undefined ist.
Bitte hleft mir doch auch noch die anderen Probleme zu lösen(siehe in meinem Voreltzten Beitrag)

Mein Code:
//test.cpp
#include
#include"head.h"

void main(){
int i=5;
cout

Die übrigen ungeklärten Fragen
Hier nochmal die anderen Fragen
(Bitte meinen letzten Eintrag mit meinem Problem zur getrennten übersetzung auch lesen)

1.)Declaration Syntax Error
//Mein Code store.h
namespace bereich{ }

in einer sonst leeren HEaderdatei ein Declaration Syntax Error
ist

also mit VC++6 gibt das keinen fehler.

Das heißt das liegt am Compiler? Ich verwende einen Borland compiler…

2.)Warum ich mein Struct ebenfalls in einer HEaderdatei nicht:

//Mein Code store.h
struct st{int i;};
typedef st& typ;
//ende
mit typedef verwenden kann (in einer .cpp funzt es so) aber:

//Anderer Code store.h

struct st2{int i;};
typedef struct st2 typ2;
//ende

funktioniert.

struct st2
{
int i; // Strichpunkt!
};

Also den Strichpunkt hab ich im wirklichen Code nicht vergessen(bloß ein Schreibfehler hier)
Mein Problem ist Variante 1 funktioniert und bei Variante 2 sagt der Compiler expecting ,

3.) Warum ich nicht in ne header datei
includen kann

also normalerweise sollte das gehen.

Fehlermeldung von meinem Compiler: Must use c++ for stdcomp.h
Ich blick das net mehr!

4.)ist es richtig, dass es sich bei
f(char **chary);
nicht mehr um einen pointer handelt, sondern den Inhalt eines
Arrays aus chars(Das als Argument für f genommen wird)?

Weiß vielleicht hierauf jemand noch eine ANtwort?

Hallo,

Mein Compiler sagt mir aber
das f() undefined ist.

Nicht f() ist undefined sondern cout().
Das steht im namespace std, daher musst
Du entweder vorher

using namespace std;

schreiben oder

 std::cout

verwenden.

Hier Dein funktionierender Quelltext:

//head.cpp
#include "head.h"

 int f(int q) 
{ 
 return --q;
}
// - - - - - - - - - - - - - - - // 

//test.cpp
#include 
#include "head.h"

 void main()
{
 int i = 5;
 std::cout Grüße

CMБ

Hallo,

1.)Declaration Syntax Error
//Mein Code store.h
namespace bereich{ }
in einer sonst leeren HEaderdatei ein Declaration Syntax
Error ist
also mit VC++6 gibt das keinen fehler.
Das heißt das liegt am Compiler? Ich verwende einen Borland
compiler…

Visal C++: geht
GCC: geht
Borland: geht nicht

Mach mal ein Semikolon rein: namespace bereich{ ; }

2.)Warum ich mein Struct ebenfalls in einer HEaderdatei
nicht:
//Mein Code store.h
struct st{int i;};
typedef st& typ;
//ende
mit typedef verwenden kann (in einer .cpp funzt es so)
aber:
//Anderer Code store.h
struct st2{int i;};
typedef struct st2 typ2;
//ende
funktioniert.

Da hast Du ein falsches Konzept im Schädel :wink:

Variante

 struct st { int i; };
 typedef st& typ;

im Header und

 main() 
{ 
 st myStruct;
 typ myRef = myStruct;
 ...

in store.cpp funktioniert ausgezeichnet.
Dabei wird eine Referenz auf myStruct erzeugt.
Du kannst nur nicht

 typ myRef;

schreiben, da
die Referenz dann nichts dereferenziert.

3.) Warum ich nicht in ne header datei
includen kann
also normalerweise sollte das gehen.

Das geht und ist auch üblich so.

Fehlermeldung von meinem Compiler: Must use c++ for stdcomp.h
Ich blick das net mehr!

Das heisst, der Compiler meint, er würde jetzt ein C-Programm
erzeugen – und beschwert sich über „Klassen“ und dergleichen.
Möglicherweise muss beim Borland das Quellfile immer .cpp oder
so heissen und nicht .c oder .cxx. Schau mal in die Dokumen-
tation.

4.)ist es richtig, dass es sich bei
f(char **chary);
nicht mehr um einen pointer handelt, sondern den Inhalt
eines Arrays aus chars(Das als Argument für f genommen wird)?

Das ist sehr simpel.

 1) char b;
 2) char ab[8];
 3) char\* zb;
 4) char\*\* zzb;

1 - b ist ein Zeichen, z.B. ‚x‘
2 - ab ist eine Konstante, die Anfangsadresse eines
Feldes von 8 Zeichen
3 - zb ist eine Variable, in der die Adresse von einem Zeichen
drinsteht (ein Zeiger auf Zeichen)
4) - zzb ist eine Variable, in der die Adresse von einem Zeiger auf
ein Zeichen drinsteht

Hinweis: Da an der Anfangsadresse des Feldes 2) auch schon ein Zeichen
steht, kann man auch schreiben

 zb = ab; 

d.h. die konstante Feldaddresse „ab“
steht jetzt im Zeiger zb.

Noch Fragen?

:wink:

CMБ

Danke! ICh bin jetzt einen Schritt weiter jedoch:
Fehlermeldung des Compilers:
unresolved external f(int) referenced from c:\Borland\bcc55\bin\test.obj

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

:Noch Fragen? Leider jede MEnge ;>

Hallo,

1.)Declaration Syntax Error
//Mein Code store.h
namespace bereich{ }
in einer sonst leeren HEaderdatei ein Declaration Syntax
Error ist
also mit VC++6 gibt das keinen fehler.
Das heißt das liegt am Compiler? Ich verwende einen Borland
compiler…

Visal C++: geht
GCC: geht
Borland: geht nicht

Mach mal ein Semikolon rein: namespace bereich{ ; }

Das Semikolon verändert leider gar nichts…

2.)Warum ich mein Struct ebenfalls in einer HEaderdatei
nicht:
//Mein Code store.h
struct st{int i;};
typedef st& typ;
//ende
mit typedef verwenden kann (in einer .cpp funzt es so)
aber:
//Anderer Code store.h
struct st2{int i;};
typedef struct st2 typ2;
//ende
funktioniert.

Da hast Du ein falsches Konzept im Schädel :wink:

Variante

struct st { int i; };
typedef st& typ;

Ich seh leider keinen Unterschied zu meiner nicht funktionierenden ersten Variante im HEader:

//Erste Variante store.h
struct st{int i;};
typedef st& typ;
//ende

Wie gesagt funktioniert diese nicht, die zweite:

//Variante 2 store.h
struct st2{int i;};
typedef struct st2 typ2;
//ende

jedoch schon!

im Header und

 main()


> {  
> st myStruct;  
> typ myRef = myStruct;  
> ...

in store.cpp funktioniert ausgezeichnet.
Dabei wird eine Referenz auf myStruct erzeugt.
Du kannst nur nicht

 typ myRef;

schreiben, da
die Referenz dann nichts dereferenziert.

3.) Warum ich nicht in ne header datei
includen kann
also normalerweise sollte das gehen.

Das geht und ist auch üblich so.

Fehlermeldung von meinem Compiler: Must use c++ for stdcomp.h
Ich blick das net mehr!

Das heisst, der Compiler meint, er würde jetzt ein
C-Programm
erzeugen – und beschwert sich über „Klassen“ und dergleichen.
Möglicherweise muss beim Borland das Quellfile immer .cpp oder
so heissen und nicht .c oder .cxx. Schau mal in die Dokumen-
tation.

Ich weiß leider nicht was du mir damit sagen willst. MEine HEaderdatei heißt --> store.h
Ansonsten benutze ich bloß .cpp und .h

4.)ist es richtig, dass es sich bei
f(char **chary);
nicht mehr um einen pointer handelt, sondern den Inhalt
eines Arrays aus chars(Das als Argument für f genommen wird)?

Das ist sehr simpel.

  1. char b;
  2. char ab[8];
  3. char* zb;
  4. char** zzb;

1 - b ist ein Zeichen, z.B. ‚x‘
2 - ab ist eine Konstante, die Anfangsadresse eines
Feldes von 8 Zeichen
3 - zb ist eine Variable, in der die Adresse von einem
Zeichen
drinsteht (ein Zeiger auf Zeichen)
4) - zzb ist eine Variable, in der die Adresse von einem
Zeiger auf
ein Zeichen drinsteht

Hinweis: Da an der Anfangsadresse des Feldes 2) auch schon ein
Zeichen
steht, kann man auch schreiben

zb = ab;

d.h. die
konstante Feldaddresse „ab“
steht jetzt im Zeiger zb.

Danke! Dieser Zusammenhang wird mir schon viel klarer!
Könntest du mir vielleicht ein Beispiel für eine Sinnvolle verwendung von: char** zzb; zeigen oder zumindest erklären warum das die Parameterübergabe in main() nicht einfach so
void main(int args,char[]){…}
heißen kann sondern noch einen pointer enthalten muss?

:wink:

Auf jeden Fall Danke das ihr euch immer noch die Mühe macht mir mit meinen *nervigen Fragen* zu helfen!

Gruß rundell32

Hallo rundell32 ,

Danke! ICh bin jetzt einen Schritt weiter jedoch:
Fehlermeldung des Compilers:
unresolved external f(int) referenced from
c:\Borland\bcc55\bin\test.obj

Hast du auch angegeben, dass der Linker head.obj mit dazulinken muss ??

Frage mich nicht wie man ein Projekt bei Borland zusammenstellen muss, ich habe seit etwa 5 Jahren nicht mehr damit gearbeitet.

MfG Peter(TOO)

unresolved external f(int) referenced from
c:\Borland\bcc55\bin\test.obj

Hast du auch angegeben, dass der Linker head.obj mit
dazulinken muss ??

Wüsste nicht wie das gehen soll. Hab bloß jeweils die HEader Datei includiert! Warscheinlich hast du recht und es lieght daran! Bloß wie soll ich das machen(dem Linker das sagen)! Habe selben COde auch unter Visual c++ gestestet–> selber fehler!

Gruß rundell32

Hallo rundell32,

Wüsste nicht wie das gehen soll. Hab bloß jeweils die HEader
Datei includiert! Warscheinlich hast du recht und es lieght
daran! Bloß wie soll ich das machen(dem Linker das sagen)!
Habe selben COde auch unter Visual c++ gestestet–> selber
fehler!

Includen hat nicht mit dem Linker zu tun, das bekommt der gar nicht mit.

Bei der IDE musst du irgendwo unter Project die dazugehörigen Dateien eintragen.

MfG Peter(TOO)

Bei der IDE musst du irgendwo unter Project die dazugehörigen
Dateien eintragen.

*g* Ich hab leider nicht ein einziges Wort verstanden *g*
Vielleicht kannst du es auch ja auch noch mal für Einsteiger erklären!

Auf jeden Fall schon mal Danke!

Gruß rundell32

Hallo rundell32,

Bei der IDE musst du irgendwo unter Project die dazugehörigen
Dateien eintragen.

*g* Ich hab leider nicht ein einziges Wort verstanden *g*
Vielleicht kannst du es auch ja auch noch mal für Einsteiger
erklären!

Nö, keine Lust !

  1. Zu deinem Compiler gibt es eine Dokumentation mit Beispielen.
  2. Im Internet findest du auch Schritt für Schritt Anleitungen, wie das weltweit bekannte „hello world“.
  3. Es gibt jede menge Bücher zu diesem Thema.

Irgendwie habt ihr jungen Hüpfer das Wissen irgendwie vom Himmel fällt.
Wissen hat etwas mit lernen zu tun und ist mit viel Arbeit verbunden. Wenn du also den Durchblick haben willst, musst du auch bereit sein, diesen Aufwand zu treiben, ansonsten lässt du es besser sein.

Nur so als kleiner Anhaltspunkt: Ich habe hier so 2-3 Tausend Fachbücher hier, welche im Verlaufe meines Lebens alle gelesen habe. Hinzu kommen noch einige Datenbücher und nautürlich meine private Nicht-Fachliteratur, worunter sich sowohl bekannte Klaissiker wie auch Comics, befinden, alles in allem so um die 10 Tausend Bücher. Hinzu kommt noch jede Menge an Information als PDF usw.

Tja, Wissen muss man sich erarbeiten !

MfG Peter(TOO)

Nö, keine Lust !

Wer es denn so schwer gewesen anstatt der standpredigt mir kurz zu erklären was du mit IDE meinst und mit unter Projekt!

  1. Zu deinem Compiler gibt es eine Dokumentation mit
    Beispielen.

*g* ist mir wohl bekannt glaub mir das ich diese vorher schon konsoltiert hätte wenn eine da wäre

  1. Im Internet findest du auch Schritt für Schritt
    Anleitungen, wie das weltweit bekannte „hello world“.

Ein Hallo World zu proggen bin ich noch in der Lage es geht mir bloß um getrennte Übersetzung

  1. Es gibt jede menge Bücher zu diesem Thema.

IN meinen UNZÄHLIGEN kostenlose E-Books und Tutorialen(Thinking in c++, The c++ programming language, usw)
steht ie getrennte Übersetzung so beschreiben wie ich sie nachprogrammiert habe! Von das Projekt im Linker zusammenstellen steht da nichts.

Irgendwie habt ihr jungen Hüpfer das Wissen irgendwie vom
Himmel fällt.
Wissen hat etwas mit lernen zu tun und ist mit viel Arbeit
verbunden. Wenn du also den Durchblick haben willst, musst du
auch bereit sein, diesen Aufwand zu treiben, ansonsten lässt
du es besser sein.

Nur so als kleiner Anhaltspunkt: Ich habe hier so 2-3 Tausend
Fachbücher hier, welche im Verlaufe meines Lebens alle gelesen
habe. Hinzu kommen noch einige Datenbücher und nautürlich
meine private Nicht-Fachliteratur, worunter sich sowohl
bekannte Klaissiker wie auch Comics, befinden, alles in allem
so um die 10 Tausend Bücher. Hinzu kommt noch jede Menge an
Information als PDF usw.

Ich weiß jetzt nicht wie du daruf kommst, dass ich das nicht tue!
Ich bin dabei mehrere Bücher erfolgreich durchzuarbeiten!
Diese sind dazu alle noch in Englisch. Als etwas älterer Hüpfer hat man warscheinlich das GELD sich tausende von Übersetzungen zu kaufen und gute teure Compiler. Ich als *junger Hüpfer* hingegen bin nicht so reich und muss auf FREEWARE zurückgreifen. Was dadurch fehlt sind zum BEispiel bei meinem Visual c++ Compiler unter anderem die Dokumentationen!

IN Thinking in c++ wurde etwas über das Zusammenstellen von Projekten mit Make.exe geschrieben(Hielt es eigentlich für nicht notwendig zu erlernen(MAKE MAKROS)). MEinst du vielleicht das das mir hlefen könnte?

Tja, Wissen muss man sich erarbeiten !

Da stimm ich dir zu und glaub mir ich weiß was du meinst!KAnn c++ nicht auf irgendwelchen seminaren lernen!

Hoffe das du mir trotzdem irgendwie weiterhilfst!

Gruß rundell32