Jako iż doktor (sic!) na uczelni popełnia tak rażące błędy i nie potrafi ich wytłumaczyć (wykłady prowadzi w wordzie, chyba celowo, żebyśmy nie zauważyli błędów w kodzie) to zwracam się do kompetentnych osób tutaj.
Sytuacja jest następująca: mamy prostą klasę, w której mamy prywatny składnik, który jest tablicą znaków o określonym rozmiarze. I mamy typowego gettera, który zwraca tą tablice, z zaznaczeniem, że jest to metoda, która nie zmienia składnika, czyli metoda const. No i doktor pisze tak:
class Klasa
{
char tekst[ 20 ];
public:
char * getTekst() const;
};
char * Klasa::getTekst() const
{
return tekst;
}
Co wywala błąd. Natomiast poprawiłem ten kod, żeby działał co można zrobić np w ten sposób.
class Klasa
{
char * tekst;
public:
char * getTekst() const;
};
char * Klasa::getTekst() const
{
return tekst;
}
Można też zostawić char tekst[20], ale usunąć const z nagłówka funkcji, wtedy też zadziała.
Pytanie moje jest następujące: dlaczego z technicznego punktu widzenia ta druga metoda działa, a pierwsza nie?