Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Unverständliche fehler

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
22.10.2008, 19:37 Uhr
Neophyte



Hallo
ich habe ein programm geschrieben (eine soundengine mit openAL) und bekomme fehlermeldungen die ich nich
verstehe hoffentlich kann mir jemand helfen.

code:

Engine.h

C++:
#include <string>
#include <iostream>
#include <AL/al.h>
#include <AL/alut.h>
#include <vector>

class SoundNode
{

    public:
     SoundNode();
     ~SoundNode();
     void setSound(char[] new_sound);
     void setSourcePosition(ALfloat new_x, ALfloat new_y, ALfloat new_z);

     char Sound;


     private:
    ALfloat ListenerPosition[3];
    ALfloat ListenerVelocity[3];
    ALfloat ListenerOrientation[6];



    ALuint Buffer;

    ALuint Source;


    ALenum format;
    ALsizei size;
    ALvoid* data;
    ALsizei freq;
    ALboolean loop;

};


engine.cpp

C++:
#include <string>
#include <iostream>
#include <AL/al.h>
#include <AL/alut.h>
#include <vector>
#include "Engine.h"


SoundNode::SoundNode(void)
{
this->ListenerPosition[0]=0.0;
this->ListenerPosition[1]=0.0;
this->ListenerPosition[2]=0.0;

this->Sound=NULL;

}


SoundNode::~SoundNode(void)
{
;
}

void SoundNode::setSourcePosition(ALfloat new_x, ALfloat new_y, ALfloat new_z)
{
    this->ListenerPosition[0]=new_x;
    this->ListenerPosition[1]=new_y;
    this->ListenerPosition[2]=new_z;

}

void SoundNode::setSound(char[] new_sound);
{
this->Sound=new_sound;
}




meine fehlermeldungen sind:
Engine.h|14|error C2146: Syntaxfehler: Fehlendes ')' vor Bezeichner 'new_sound'|
Engine.h|14|error C3646: "new_sound": Unbekannter šberschreibungsspezifizierer|
Engine.h|14|error C2059: Syntaxfehler: ')'|
Engine.cpp|33|error C2146: Syntaxfehler: Fehlendes ')' vor Bezeichner 'new_sound'|
Engine.cpp|33|error C3646: "new_sound": Unbekannter šberschreibungsspezifizierer|
Engine.cpp|33|error C2059: Syntaxfehler: ')'|
Engine.cpp|33|error C2761: 'void SoundNode::setSound(char [])': Die erneute Deklaration der Memberfunktion ist unzul„ssig|
Engine.cpp|34|error C2447: '{': Funktionsheader fehlt - Parameterliste im alten Stil?|
||=== Build finished: 8 errors, 1 warnings ===|

Ich verstehe weder was diese meldungen bedeuten noch wie ich sie beheben könnte.
Bitte helft mir
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
22.10.2008, 19:57 Uhr
TOSHMAX



Hi,

C++:
class SoundNode
{

    public:
     ...
     void setSound(char* new_sound);
     ...

     char* Sound;

     ...
};

void SoundNode::setSound(char* new_sound)
{
     this->Sound = new_sound; // Solltest du lieber nicht machen, hol dir speicher für this->Sound und kopier new_sound da rein
}



Das müssten alle Fehler sein.

Gruß
TOSHMAX
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
22.10.2008, 20:01 Uhr
Hans
Library Walker
(Operator)


Hi,

Du weisst nicht, was Syntataxfehler sind?! - Traurig, traurig
Syntaxfehler heisst, das Du Dich irgendwo vertippt hast: ein falsches Zeichen, eines vergessen oder auch zu viel. Dabei kann kann es sich um Buchstaben, Ziffern oder "Satzzeichen" handeln.

Hans


P.S.
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
22.10.2008, 20:12 Uhr
Neophyte



[quote TOSHMAX]
Solltest du lieber nicht machen, hol dir speicher für this->Sound und kopier new_sound da rein
quote]
Wie denn?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
22.10.2008, 20:13 Uhr
Neophyte




Zitat von Hans:
Hi,

Du weisst nicht, was Syntataxfehler sind?! - Traurig, traurig
Syntaxfehler heisst, das Du Dich irgendwo vertippt hast: ein falsches Zeichen, eines vergessen oder auch zu viel. Dabei kann kann es sich um Buchstaben, Ziffern oder "Satzzeichen" handeln.

Hans


P.S.


Doch das weiss ich schon, ich hab nur dese fehlermeldung nicht verstanden.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
22.10.2008, 20:44 Uhr
0xdeadbeef
Gott
(Operator)


Statt

C++:
  void setSound(char[] new_sound); // <-- so sehen arrays in C++ nicht aus



C++:
  void setSound(char new_sound[]); // <-- so schon, zumindest als unvollständige Typen.


Im Übrigen kannst du ein char-array nachher nicht einer einzelnen char-Variable zuweisen.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
23.10.2008, 15:00 Uhr
TOSHMAX



Hi,
zum Beispiel so:

C++:
void SoundNode::setSound(char* new_sound)
{
    this->Sound = new char[strlen(new_sound) + 1];
    strcpy(this->Sound,new_sound);
}

//Speicher natürlich wieder freigeben, wenn du ihn nicht mehr brauchst
SoundNode::~SoundNode(void)
{
    delete [] this->Sound;
}



Das brauchst du, da jemand von außen new_sound verändern könnte und wenn er das macht würde er automatisch this->Sound verändern und damit vielleicht große Fehler in deinem Programm hervorrufen.

Gruß
TOSHMAX
 
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: