C++ default-int wird nicht angenommen
-
hallo
ich habe mir vor kurzem das Buch 3D-Spiele-Programmierung von David Schergen gekauft. Allerdings kommmt bei mit immer der Fehler :
default-int ist veraltet
kann mir einer helfen
ich benutze MSVC++ 8 und DirectX 9DklDino
-
DklDino schrieb:
hallo
ich habe mir vor kurzem das Buch 3D-Spiele-Programmierung von David Schergen gekauft. Allerdings kommmt bei mit immer der Fehler :
default-int ist veraltet
kann mir einer helfen
ich benutze MSVC++ 8 und DirectX 9DklDino
Sei mir nicht böse, aber wenn diese Meldung Dir nichts sagt, solltest Du vllt erst die Sprache lernen.. bzw besser beherrschen.
Im Prinzip hast Du bei einer Funktion entweder den Rückgabetyp vergessen oder einen #include nicht gesetzt. Aber ohne Compiler-Meldung und Code von der betreffenden Stelle kann ich Dir nicht helfen. Glaskugel ist kaputt..
rya.
-
Folgendes Programm verursacht den Fehler unter Visual Studio 2008:
#include <iostream> using namespace std; foo(int x) // <- Hier ist der Fehler - der Rückgabetyp fehlt { return 10; } void main() { cout<<"Hello World"<<endl; system("pause"); }
Error 1 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\users\admin\desktop\testbed\testbed\main.cpp 5
siehe auch:
http://msdn.microsoft.com/en-us/library/ms173696(VS.85).aspx
-
Hallo
vielen dank für eure Antworten
kann mir einer sagen was ich da jetzt machen muss damit es funktioniertdanke DklDino
-
DklDino schrieb:
Hallo
vielen dank für eure Antworten
kann mir einer sagen was ich da jetzt machen muss damit es funktioniertdanke DklDino
Es fehlt ein Rückgabetyp in der Funktion. Du weißt doch sicherlich wie eine Funktion aussehen muss oder?
die Funktion die den Fehler verursacht sieht so aus "foo(int x);" muss aber so aussehen "int foo(int x);".
-
hallo
wo soll ich den hier den Rückgabetyp einfügen ??
class COARefTime : public CRefTime { public: COARefTime() { }; COARefTime(CRefTime t) : CRefTime(t) { }; COARefTime(REFERENCE_TIME t) : CRefTime(t) { }; COARefTime(double d) { m_time = (LONGLONG) (d * 10000000); }; operator double() { return double(m_time) / 10000000; }; operator REFERENCE_TIME() { return m_time; }; COARefTime& operator=(const double& rd) { m_time = (LONGLONG) (rd * 10000000); return *this; } COARefTime& operator=(const REFERENCE_TIME& rt) { m_time = rt; return *this; } inline BOOL operator==(const COARefTime& rt) { return m_time == rt.m_time; }; inline BOOL operator!=(const COARefTime& rt) { return m_time != rt.m_time; }; inline BOOL operator < (const COARefTime& rt) { return m_time < rt.m_time; }; inline BOOL operator > (const COARefTime& rt) { return m_time > rt.m_time; }; inline BOOL operator >= (const COARefTime& rt) { return m_time >= rt.m_time; }; inline BOOL operator <= (const COARefTime& rt) { return m_time <= rt.m_time; }; inline COARefTime operator+(const COARefTime& rt) { return COARefTime(m_time + rt.m_time); }; inline COARefTime operator-(const COARefTime& rt) { return COARefTime(m_time - rt.m_time); }; inline COARefTime operator*(LONG l) { return COARefTime(m_time * l); }; inline COARefTime operator/(LONG l) { return COARefTime(m_time / l); }; private: // Prevent bugs from constructing from LONG (which gets // converted to double and then multiplied by 10000000 COARefTime(LONG); operator=(LONG); };
-
Also, wenn du die Meldung bekommst, dann bekomst du auch ne Datei und Zeilenangabe und die verweist unmissverständlich genau dahin wo das Problem vorliegt, zu der Zeile solteste gehen und mal nachschaun.
-
Kopier doch bitte mal die Compilermeldung rein, wir sind keine Hellseher.
Wir können Dir ohne genaue Fehlermeldung nicht helfen.
rya.
-
Hallo
ich benutze eine Spiele-Egine aber schon beim kompilieren der include-Dateien tritt der Fehler auf
#include <windows.h> #include <tribase.h>
d:\eigene dateien\tribase\include\dshowbaseclasses\ctlutil.h(278) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
der compiler sagt mir dass es irgendwo in dieser Klassen-deklaration
Dankle für eure Hilfe
DklDino
-
DklDino schrieb:
der compiler sagt mir dass es irgendwo in dieser Klassen-deklaration
Nein, eben nicht irgendwo. Er gibt dir die exakte Zeilennummer des Fehlers an.
Es wäre gut, wenn du die entsprechende Zeile (und etwas darum herum) posten könntest.
-
Und check mal, ob du BBcode in deinem Beitrag erlaubst. So helfen die CPP-Tags auch keinem weiter.
-
Hallo
hier ist die Stelle:
inline COARefTime operator*(LONG l) { return COARefTime(m_time * l); }; inline COARefTime operator/(LONG l) { return COARefTime(m_time / l); }; private: // Prevent bugs from constructing from LONG (which gets // converted to double and then multiplied by 10000000 COARefTime(LONG); // <=== hier operator=(LONG); };
Der Fehler ist mit
<=== hier
markiertDklDino
/edit pumu: Formatierungstags in Quellcodetags machen nicht das was du erwartest - kennzeichnen am Betsen mit Kommentaren
-
Dann weist du ja was du tun musst. Auch operatoren haben Rückgabewerte. Wenn du sowas allerdings nicht wiest solltest du erstmal Grundlagen in C++ machen, sonst kommste nicht weit.
-
Was soll ich da jetz machen ?
-
Xebov schrieb:
Wenn du sowas allerdings nicht wiest solltest du erstmal Grundlagen in C++ machen, sonst kommste nicht weit.
-
das hier ist das falsche sub-forum denk ich mir, das sind keine graphik/spiele fragen.
-
Dieser Thread wurde von Moderator/in rapso aus dem Forum Spiele-/Grafikprogrammierung in das Forum C++ verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
DklDino schrieb:
Was soll ich da jetz machen ?
operator=(LONG);
Ein Operator ist eine Funktion / Methode der Klasse, also gilt
Rückgabetyp operator Operatortyp ( Argumente );z.B.
int operator + (const int& i2) const;
-
Siassei schrieb:
z.B.
int operator + (const int& i2) const;
Sowohl die Referenz auf
const int
als auch die Operatorüberladung als Member sind in diesem Beispiel nicht besonders sinnvoll. Warum, erfährst du hier.