Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » expected constructor,destructor or type conversation bevore '='

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
17.07.2006, 12:57 Uhr
Karldin Shinowa
Professional Noob



C++:

string name;
string path;
string nameCpp;
string nameH;
string defineName ;
//.
//.
//.

nameCpp=path+name+".cpp";//<---hier
nameH=path+name+".h";//<---hier
defineName=name;//<---hier



Und bei vielen anderen zeigt er das auch woran kann das liegen???
--
Ich will die Welt verbessern, doch Gott gibt mir nicht den Code.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
17.07.2006, 13:27 Uhr
Th



Hast du irgendwie "string" umdefiniert, z.B. ein Makro, eine Klasse/Struktur oder eine Variable mit diesem Namen erstellt?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
17.07.2006, 13:31 Uhr
Karldin Shinowa
Professional Noob


nicht das ich wüsste:

C++:
#include<iostream>
#include<stdio.h>
#include<fstream>
#include<string>

using namespace std;

string name;
string path;
fstream FileCpp;
fstream FileH;

string nameCpp;
string nameH;

string defineName ;
int main()
{


cout<<"Name(keine Leerzeichen): ";
cin>>name;

cout<<"Pfad(oder this): ";
getline(cin,path);

if(path=="this")
{
   path="";
}
else
{
//Put / at the end if there is no
   if(path[  (path.length()-1)  ]!='/')
   {  
      path+='/';
   }
  
//if someone took \ instead of / replace it
   for(int i=0;i<path.length();i++)
   {
      if(path[i]=='\\')// \\==\
      {
         path[i]='/';
      }
   }
}

nameCpp=path+name+".cpp";
nameH=path+name+".h";

defineName=name;

for(int i=0;i<defineName.length();i++)
{
   int charInt=static_cast<int>(defineName[i]);
   if(charInt>=97&&
      charInt<=122)
   {
      charInt-=32;
      defineName[i]=static_cast<char>(charInt);
   }
}
defineName+="_H";
FileH.open(nameH.c_str(),ios::out);


//HEADER
FileH<<"#ifndef "<<defineName<<"\n";
FileH<<"#define "<<defineName<<"\n";
FileH<<"\n";
FileH<<"/*"<<"\n";
FileH<<"################################################################################"<<"\n";
FileH<<"#CLASSNAME: "<<name;
int length=79-13-name.length();
for(int i=0;i<length;i++) FileH<<" ";
FileH<<"#";
FileH<<"#DESCRIPTION:                                                                  #"<<"\n";
FileH<<"#AUTHOR: Karldin                                                               #"<<"\n";
FileH<<"#FEATURES:                                                                     #"<<"\n";
FileH<<"#NOTES:                                                                        #"<<"\n";
FileH<<"################################################################################"<<"\n";
FileH<<"*/
"
<<"\n";
FileH<<"\n";

FileH<<"class "<<name<<"\n";
FileH<<"{"<<"\n";
FileH<<"   private:"<<"\n";
FileH<<"\n";

FileH<<"   public:"<<"\n";
FileH<<"/*//Konstructor//*/"<<"\n";
FileH<<"      "<<name<<"();"<<"\n";
FileH<<"/*//Destructor//*/"<<"\n";
FileH<<"      ~"<<name<<"();"<<"\n";
FileH<<"\n";
FileH<<"}";
FileH<<"\n";
FileH<<"#endif";

FileH.close();
}




PS: im editor nimmt er es nicht als kommentaranfang das "*/"
--
Ich will die Welt verbessern, doch Gott gibt mir nicht den Code.

Dieser Post wurde am 17.07.2006 um 13:33 Uhr von Karldin Shinowa editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
18.07.2006, 14:19 Uhr
Th



entferne mal den "#include<stdio.h>", wer weiß, was der noch so einbindet... (in C++ sollte man nur streams benutzen)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
18.07.2006, 14:31 Uhr
Karldin Shinowa
Professional Noob


Ändert nix....
--
Ich will die Welt verbessern, doch Gott gibt mir nicht den Code.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
18.07.2006, 15:12 Uhr
0xdeadbeef
Gott
(Operator)


Ich muss zugeben, es hat etwas gedauert, bis ich den gesehen habe - etwas esoterischer Fehler. Diese Zeile:

C++:
      if(path[i]=='\\')// \\==\


Ist so nicht in Ordnung. Der Hintergrund ist, dass der backslash am Ende - backslash in C++ gebräuchliches Escape-Zeichen - das newline-Zeichen am Ende der Zeile neutralisiert, so dass die nächste Zeile noch in den Kommentar hineinfällt und es mit den geschweiften Klammern nicht hinkommt. (Hintergrund für dieses Verhalten sind z.B. Makro-Deklarationen). Änder das um zu

C++:
if(path[i] = '\\') // Backslash ist Escape-Sonderzeichen


Dann klappts auch mit dem Compiler.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
18.07.2006, 15:31 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


Nit schlecht
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
18.07.2006, 15:59 Uhr
Karldin Shinowa
Professional Noob



Zitat von 0xdeadbeef:
I
Ist so nicht in Ordnung. Der Hintergrund ist, dass der backslash am Ende - backslash in C++ gebräuchliches Escape-Zeichen - das newline-Zeichen am Ende der Zeile neutralisiert, so dass die nächste Zeile noch in den Kommentar hineinfällt und es mit den geschweiften Klammern nicht hinkommt. (Hintergrund für dieses Verhalten sind z.B. Makro-Deklarationen). Änder das um zu



Bahnhof?

Aber es funktioniert jetzt danke
--
Ich will die Welt verbessern, doch Gott gibt mir nicht den Code.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
18.07.2006, 16:52 Uhr
J-jayz-Z
Perl Crack ala Carte
(Operator)


Hier
C++:
if(path[i]=='\\')// \\==\
steht normalerweise
C++:
if(path[i]=='\\')// \\==\\n

Du kennst ja,wie man bei den beiden backslashes sieht,die bedeutung eines Backslash vor einem Sonderzeichen - es nimmt ihm seine Bedeutung. So steht am Ende keine newline (\n) mehr sondern eben \\n,was \n seine Funktion als neue Zeile nimmt. Somit hast du die Klammer ( { ) noch im Kommentar stehen, somit fehlt eine und es ist ein Syntax Error !
--
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="66756e2d736f66742e6465"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ 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: