Otóż mam sobie taką klasę (int mode jest zmienną globalną):
class word
{
private:
string pl, en;
public:
void set(string w1, string w2)
{
pl=w1;
en=w2;
}
bool match(string in)
{
if (mode==1) return (pl==in)?1:0;
else return (en==in)?1:0;
}
};
oraz tablicę wskaźników na obiekty klasy word:
word * wordlist = new word[size];
gdzie int size jest zmienną globalną, początkowo równą 2. Oczywiście w trakcie działania aplikacji chciałbym powiększać size. Pytanie 1: Czy to znaczy, że muszę później dodatkowo tworzyć nowe pola tej tablicy/nowe obiekty, czy samo zmienienie size w kolejnych linijkach sprawi, że rozmiar tej tablicy wzrośnie i zostaną utworzone nowe obiekty?
W kolejnej części programu do tych obiektów staram się przypisać wartości w ten oto sposób:
(&wordlist[i])->set(pl,en); //pl, en to zmienne typu string o konkretnej wartości
Pytanie 2: Czy jest to właściwy sposób wywołania metody?
Aż w końcu używam przykładowo:
bool rr=&wordlist[i]->match("wspaniały");
I otrzymuję błąd:
74 C:(...)plik.cpp base operand of
->' has non-pointer type
word'
Pytanie 3: Jak prawidłowo wywoływać metody dla obiektu, którego wskaźnik przetrzymuję w tablicy wordlist?
PS Prawdopodobnie sporo tutaj błędów, ale dopiero uczę się wskaźników i obiektów, i nie do końca wiem jak sobie z tym poradzić.