bada OS SDK

0

Właśnie zacząłem moją przygodę z bada OS SDK, które jest oparte na C++ i mam problem, którego nie potrafię rozwiązać. Powiedzmy, że mam taką funkcję:

ArrayListT<String> Form3::rozbij(String cos)
{
	ArrayListT<String> tablica;
	tablica.Construct();

	for (int i=0;i<cos.GetLength();i++)
	{
		tablica.Add(cos[i]);
	}
	return tablica;
}

Kiedy próbuję to skompilować, kompilator informuje, że w linijce "return tablica" jest błąd "within this context". Czy ktoś wie, o co tu może chodzić?

0

Podaj cały opis błędu a nie ten najmniej istotny szczegół. "within this context" znaczy, że jakiś błąd jest powiązany z tą linką. GCC często podaje, że błąd wystąpił tutaj, a w innym miejscu znajduje się kod powiązany z tym błędem.
Stawiam na to, że zapomniałeś dołączyć jakiś plik nagłówkowy (prawdopodobnie ten z szablonem ArrayListT).

0

Dodałem cały opis błędu, kompilator wyświetla "within this context" i nic więcej. A z plikami nagłówkowymi jest wszystko dobrze, bo wszystko działa, dopóki nie próbuję zwrócić tablicy.

0

Patrząc na metodę Construct to strzelam, że ArrayListT ma niepubliczny konstruktor kopiujący.

Rozwiązanie:

void Form3::rozbij(String cos, ArrayListT<String> &result)
{
        result.Construct();

        for (int i=0;i<cos.GetLength();i++)
        {
                result.Add(cos[i]);
        }
}

// użycie

ArrayListT<String> tab;
rozbij(string, tab);
0

Działa. Dziękuję za pomoc.

0
pawcio007 napisał(a)

Dodałem cały opis błędu, kompilator wyświetla "within this context" i nic więcej.

Na 100% się mylisz. Najprawdopodobniej IDE, które stosujesz (pewnie Eclipse) parsuje wynik kompilacji i pokazuje wynik w skróconej wersji. Niestety twoje IDE nie radzi sobie z błędami zapisanymi w wielu linkach. Znajdź okienko "compiler output/result" lub coś w tym guście i tam będziesz miał pełen opis błędu (rada na przyszłość).

//q: okno/zakladka ta moze tez sie nazywac po prostu 'build' albo 'console'

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