C++ klassen und programme...

Hi,
ich hab mir das buch einsteigerseminar c++ heolt weil es hier im forum auch schon mal vorgeschlagen wurde...nun wollte ich beim thema klassen ein beispiel nach machen aber es klappt nicht.woran kann das liegen???

CRechteck.h
Code:
 class CRechteck
{
public:
CRechteck(unsigned int,unsigned int);
void SetzeSeiten(unsigned int, unsigned int);
bool IstQuadrat();
int BerechneFlaeche();
protected:
int iSeiteA, iSeiteB;
};
und die Rchteck.cc
Code:
#include "CRechteck.h"int iSeiteA,iSeiteB;void CRechteck::SetzeSeiten(unsigned int iLaengeSeiteA,unsigned int iLaengeSeiteB){	iSeiteA=iLaengeSeiteA;	iSeiteB=iLaengeSeiteB;};bool CRechteck::IstQuadrat(){	return (iSeiteA==iSeiteB);};int CRechteck::BerechneFlaeche(){	return iSeiteA*iSeiteB;};
#include "CRechteck.h"

int iSeiteA,iSeiteB;

void CRechteck::SetzeSeiten(unsigned int iLaengeSeiteA,unsigned int iLaengeSeiteB)
{
iSeiteA=iLaengeSeiteA;
iSeiteB=iLaengeSeiteB;
};

bool CRechteck::IstQuadrat()
{
return (iSeiteA==iSeiteB);
};

int CRechteck::BerechneFlaeche()
{
return iSeiteA*iSeiteB;
};
 
Hast du in der Rchteck.cc (heißt das normalerweise nicht .cpp?) wirklich alles in eine Zeile geschreiben wie im Code-Tag? Das geht natürlich nicht wegen dem #include, da das eine Precompileranweisung ist.

odigo

Edit: Was klappt eigentlich genau nicht? Compilerfehler?
 
Code:
#include <iostream>
using namespace std;
 
class CRechteck
{
public:
CRechteck(unsigned int,unsigned int);
void SetzeSeiten(unsigned int, unsigned int);
bool IstQuadrat();
int BerechneFlaeche();
private:
unsigned int iSeiteA, iSeiteB;
};

CRechteck::CRechteck(unsigned int a, unsigned int b)
{
	iSeiteA=a;
	iSeiteB=b;
}

void CRechteck::SetzeSeiten(unsigned int iLaengeSeiteA,unsigned int iLaengeSeiteB)
{
iSeiteA=iLaengeSeiteA;
iSeiteB=iLaengeSeiteB;
};

bool CRechteck::IstQuadrat()
{
if (iSeiteA==iSeiteB)
return true;
else 
return false;
};

int CRechteck::BerechneFlaeche()
{
return iSeiteA*iSeiteB;
}; 

int main ()
{
	CRechteck r1(3,3);
	if (r1.IstQuadrat())
	cout<<"das rechteck ist ein quadrat\n";
		else cout<<"das rechteckt ist kein quadrat\n";
    
	r1.SetzeSeiten(3,4);
	if (r1.IstQuadrat())
	cout<<"das rechteck ist ein quadrat\n";
		else cout<<"das rechteckt ist kein quadrat\n";
		
			
	
	return 0;
}

So Funktioniert deine Klasse, du hattest den Konstruktor nicht implementiert, ihn jedoch deklariert. Das protected habe ich gegen ein private ausgetauscht, da protected nur Sinn macht wenn du von der Klasse CRechteck eine weitere Klasse ableitest. Naja den Rest der Änderungen siehst du ja selber (; wenn noch Fragen sind einfach hier stellen.
 
nein odigo...hatte ich natürlich nich...beim reinkopieren im editor wars auch noch ordentlich...kp wieso das in der zeile ist...
nein es geht auch .cc als endung

cr0523: in dem buch ist es aber so das die klasse als header-datei eingebunden wird...was müsste dann in die header datei und was in die anwendung???


EDIT:
hat sich erledigt....kann also als fertig deklariert werden...
 
Zurück
Oben