Bitmapy w pętli while

0
string buttons[2] = {"img/start.bmp", "img/wyjscie_bmp"};
	int x = 390;
	int y;
	int i = 0;
	while(i < 2)
	{
		BITMAP * btn;
		y = 170+40*(i+1);
		btn = load_bmp(buttons[i].c_str(), default_palette);
		blit(btn, bufor, 0, 0, x, y, btn->w, btn->h);
		destroy_bitmap(btn);
		i++;
	}

Dlaczego to nie działa?
A jak zmienię [code]"buttons[i].c_str()"[/code] na [code]"img/start.bmp"[/code] to wyświetla dwie te same bitmapy (pętla działa).

0

"img/wyjscie.bmp"

Poza tym:
const char *buttons[]={"img/start.bmp", "img/wyjscie.bmp"};
...
btn = load_bmp(buttons[i],default_palette);

0

Dlaczego to nie działa. Odpowiedź brzmi: klasa string nie jest agregatem tzn prostym zgrupowaniem danych, ponieważ zawiera składowe prywatne. Obiektu nie będącego agregatem nie można inicjalizować zbiorczo.

0

jak mam takie coś:

 
class abc {
    public:
    int a;
    int b;
    private: 
    int agf;
};

int main() {
    
    abc ax = {1,2};


}

to wywala komunikat:
prog.cpp:16: error: braces around initializer for non-aggregate type ‘abc’
Przecież klasa string zawiera na pewno pola prywatne więc nie wiem czemu taka inicjalizacja przechodzi

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