Problem z klasa

0

Mam klase gwiazdy ale sa bledy przy kompilacji...

Star::Star(float xpos, float ypos, float zpos)
{
	x = xpos;
	y = ypos;
	z = zpos;
}

Star::~Star()
{
}

void Star::SetPosition(float xpos, float ypos, float zpos)
{
	x = xpos;
	y = ypos;
	z = zpos;
}

void Star::SetColor(float red, float green, float blue)
{
	r = red;
	g = green;
	b = blue;
}

No i przy:

Star gwiazda(0.0f, 5.0f, 0.0f);
gwiazda.SetColor(1.0f, 0.0f, 0.0f);

pojawiaja sie bledy:
error C2143: syntax error : missing ';' before '.'
error C2501: 'gwiazda' : missing storage-class or type specifiers
error C2371: 'gwiazda' : redefinition; different basic types
see declaration of 'gwiazda'
error C2143: syntax error : missing ';' before '.'

Wszystkie sredniki sa i nie wiem czemu sa bledy i co one oznaczaja. powiedzcie co zle napisalem...?

0

u mnie śmiga:

class Star
{
	public:
	Star::Star(float xpos, float ypos, float zpos);
	void Star::SetPosition(float xpos, float ypos, float zpos);
	void Star::SetColor(float red, float green, float blue);
	Star::~Star();
	private:
	float r, g, b;
	float x, y, z;
};

Star::Star(float xpos, float ypos, float zpos)
{
	x = xpos;
	y = ypos;
	z = zpos;
}

Star::~Star()
{
}

void Star::SetPosition(float xpos, float ypos, float zpos)
{
	x = xpos;
	y = ypos;
	z = zpos;
}

void Star::SetColor(float red, float green, float blue)
{
	r = red;
	g = green;
	b = blue;
}

main()
{
	Star gwiazda(0, 5, 0);
	gwiazda.SetColor(1.0f, 0.0f, 0.0f);

	return 0;
}
0

No a u mnie nie :-( Nie wiem czemu... Jakiego kompilatora uzywasz markoot? Ja uzywa VC++ ale raczej nie powinno byc klopotu ;-(

0

Star gwiazda(0.0f, 5.0f, 0.0f);
gwiazda.SetColor(1.0f, 0.0f, 0.0f);

po co ci te f-y ??
napisz po prostu : Star gwiazda(0,5,0);

0

cv 6.0 , ale te .f u mnie dzialaja, tez uwazam ze niepotrzebna sa
probowales przekopiowac to wszystko co napisalem i zrob na nowo projekt w win32 console aplication

0

No juz sam nie wiem co sie stalo :-/ Przepisalem tylko funkcj Draw tej klasy(tu jej nie podalem) i juz wszystko dziala [hurra] A te f i .0 to tak z przyzwyczajenia ;p Musialem jednak gdzies cos skopac ...

Mimo wszystko dzieki wszystkim za pomoc!

A przypomnial mi sie kawal ktory ktos juz tu napisal(chyba Dryo) o tych trzech gosciach fizyku, informatyku i kims jeszcze i zepsutym samochodzie :)

0

A jeszcze jeden problemik... dodalem do klasy star funkcje do losowego generowania jej pozycji:

void Star::GenPosition()
{
int xtmp = rand() % 500;
float xpos = (float)xtmp / 100;
x = xpos;
}

I to cos tego kurde nie dziala... nie smiejcie sie bo ja jeszcze nie do konca umiem c... co znow tu jest nie tak???

0

Ja do generowania liczb losowych używam czegoś takiego:

randomize();

X = random(iles tam);

0

Zanim użyjesz funkcji rand() , musisz wywołać funkcję srand() , która uruchomi generator liczb losowych .

1 użytkowników online, w tym zalogowanych: 0, gości: 1