• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Tworzenie tablicy obiektow klasy

0 głosów
51 wizyt
pytanie zadane 10 stycznia w C i C++ przez użytkownika devi Początkujący (320 punkty)
class Punkt
{
public:
	GLfloat x;
	GLfloat y;

	Punkt()
	{
		x = y = 0;
	}

	Punkt(GLfloat _x, GLfloat _y)
	{
		x = _x;
		y = _y;
	}

	Punkt operator+(Punkt &w)
	{
		Punkt r;
		r.x = this->x + w.x;
		r.y = this->y + w.y;

		return r;
	}
};

class Prostokat
{
public:
	Punkt x1y1, x2y2;						// pozycja (x,y) krawędzi prostokąta/kwadratu
											// x1y1 - lewy dolny wierzchołek, x2y2 - prawy gorny wierzchołek
	Prostokat()
	{
		x1y1.x = 0;
		x1y1.y = 0;

		x2y2.x = 0;
		x2y2.y = 0;
	}

	Prostokat(GLfloat _x1, GLfloat _y1, GLfloat _x2, GLfloat _y2)
	{
		x1y1.x = _x1;
		x1y1.y = _y1;

		x2y2.x = _x2;
		x2y2.y = _y2;
	}

	GLfloat szerokosc = x2y2.x - x1y1.x;
	GLfloat wysokosc = x2y2.y - x1y1.y;
};

i tworzę tablicę którą chce zainicjalizować:

Prostokat sciana[] = { (-43.0f,36.0f,-34.0f,43.0f), (-27.0f,36.0f,-10.0f,43.0f), (10.0f,36.0f,27.0f,43.0f), (34.0f,36.0f,43.0f,43.0f) };

i dostaję błąd:
Error (active) :      no suitable constructor exists to convert from "float" to "Prostokat" 
 

4 odpowiedzi

+1 głos
odpowiedź 10 stycznia przez użytkownika unknown Pasjonat (23,900 punkty)
Prostokat sciana[] { {-43.0f,36.0f,-34.0f,43.0f}, {-27.0f,36.0f,-10.0f,43.0f}, {10.0f,36.0f,27.0f,43.0f}, {34.0f,36.0f,43.0f,43.0f}};

 

+1 głos
odpowiedź 10 stycznia przez użytkownika ElMago Nowicjusz (220 punkty)

Tworzenie tablicy obiektów powinno wyglądać tak: 

Prostokat sciana[] = {  Prostokat(-43.0f,36.0f,-34.0f,43.0f),
                        Prostokat(-27.0f,36.0f,-10.0f,43.0f),
                        Prostokat(10.0f,36.0f,27.0f,43.0f),
                        Prostokat(34.0f,36.0f,43.0f,43.0f) 
                     };

 

0 głosów
odpowiedź 10 stycznia przez użytkownika Evelek Stary wyjadacz (11,970 punkty)
To troszkę nie tak. Tworzysz obiekt klasy Prostokąt o nazwie sciana[]. Obiekt musi być zgodny z definicja konstruktora.
0 głosów
odpowiedź 10 stycznia przez użytkownika devi Początkujący (320 punkty)
W takim razie wie ktoś może jak można załatwić tą sprawe by można tak zainicjalizować tą tablicę? byłoby to bardzo wygodne i sprawnie mógłbym ją uzupełnić bo mam do wprowadzenia dość sporą ilość współrzędnych.

Podobne pytania

0 głosów
2 odpowiedzi 66 wizyt
pytanie zadane 3 stycznia w C i C++ przez użytkownika sh1nen Obywatel (1,490 punkty)
0 głosów
2 odpowiedzi 128 wizyt
0 głosów
2 odpowiedzi 130 wizyt
...