Fehlermeldung bei Visual C++ Express Edition 2008 - Keine Ahnung was und wieso?

finnex

Erfahrenes Mitglied
Hallo,
ich habe keine Ahnung wieso mein Visual C++ dieses Programm nicht ausführen will.

Code:
//------------------------------
#include "stdafx.h"
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
//------------------------------
class Test
{
private: 
	     int anzahl;
public:  
	     Test(void);
		 void setAnzahl(anz);
		 int getAnzahl(void);
};
//-------------------------------
Test::Test(void)
{
  anzahl = 0;
}
//-------------------------------
void Test::setAnzahl(anz)
{
   anzahl = anz;
}
//-------------------------------
int Test::getAnzahl(void)
{
  return(anzahl);
}
//-------------------------------
int main (void)
{
  Test *testen;
  testen = new(Test);
  printf("%i\n",testen->getAnzahl);
  testen->setAnzahl(10);
  printf("%i\n",testen->getAnzahl);
  delete(testen);
  getch();
  return(0);
}
//-------------------------------

Es werden immer folgende Fehlermedlungen ausgegeben:

------ Erstellen gestartet: Projekt: test, Konfiguration: Debug Win32 ------
Kompilieren...
test.cpp
.\test.cpp(13) : error C2061: Syntaxfehler: Bezeichner 'anz'
.\test.cpp(22) : error C2065: 'anz': nichtdeklarierter Bezeichner
.\test.cpp(23) : error C2448: 'Test::setAnzahl': Funktionsstil-Initialisierung scheint eine Funktionsdefinition zu sein
.\test.cpp(36) : error C3867: "Test::getAnzahl": Dem Funktionsaufruf fehlt die Argumentliste. Verwenden Sie "&Test::getAnzahl", um einen Zeiger auf den Member zu erstellen.
.\test.cpp(37) : error C2660: 'Test::setAnzahl': Funktion akzeptiert keine 1 Argumente
.\test.cpp(38) : error C3867: "Test::getAnzahl": Dem Funktionsaufruf fehlt die Argumentliste. Verwenden Sie "&Test::getAnzahl", um einen Zeiger auf den Member zu erstellen.
Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\Martin Timo\Eigene Dateien\Visual Studio 2008\Projects\test\test\Debug\BuildLog.htm" gespeichert.
test - 6 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========

Ich habe keine Ahnung was Visual C++ von mir will.... Habe bis jetzt nur mit dem Borland Builder OOP programiert, und da hat es immer schön geklappt.
Ich hoffe ihr könnt mir helfen

MfG Finnex
 
Hallo,
ich habe keine Ahnung wieso mein Visual C++ dieses Programm nicht ausführen will.
ganz einfach, weil es fehlerhafte Syntax enthält;)

Lösung recht simpel:
C++:
void Test::setAnzahl(int anz) //int hat gefehlt
{
   anzahl = anz;
}
zweitens:
C++:
int main (void)
{
  Test *testen;
  testen = new(Test);
  printf("%i\n",testen->getAnzahl); //ist eine Funktion!!
  testen->setAnzahl(10);
  printf("%i\n",testen->getAnzahl); //ist eine Funktion!!
  delete(testen);
  getch();
  return(0);
}
Funktionen werden wie folgt aufgerufen:
C++:
myfunction(/*parameter wenn nicht void*/)

also:

printf("%i\n",testen->getAnzahl());//Klammern hinter getAnzahl;)

MfG

EDIT: Juhu, mein 300ster Post:D
 
Zuletzt bearbeitet von einem Moderator:
Hi,
vielleicht solltest du ersteinmal dir Grundlagen lernen, bevor du dich an Klassen versuchst :P

Neine Spass ich glaube du kannst das, bist nur im Moment zu Müde, Verplant, weiß der Geier was ^^.

C++:
class Test
{
        void setAnzahl(int anz);
};

void Test::setAnzahl(int anz)

{
     anzahl = anz;
}

Bei dem Protoytpen wie auch bei der Ausformuleriung solltest du schon den Datentyp angeben ;P

und Funktionene mit () am Ende aufrufen

C++:
testen->getAnzahl();

EDIT: Oh da war ich wohl zu langsam

MFG // // ///////////////
 
Zuletzt bearbeitet:
upps...
muss sagen das ist mir jetzt peinlich^^
die fehler hätt ich selber sehn müssen...

habe mich wohl zu stark drauf fixiert, dass die umgebung irgendwas falschens macht anstatt auf meinen quelltext zu achten
jetzt klappt alles.
Da habe ich wohl zuschnell einen post erstellt...


MfG Finnex
 
Zurück