Problem z metodami typu const

Problem z metodami typu const
WY
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 134
0

Witam, mam mały problem z funkcjami typu const. Próbowałem już kilku możliwości i żadna nie działa tak jak bym chciał. Oto kilka z nich:

1) Tutaj podkreśla mi słowo this i w errorze jest napisane "typ zwrcanej wartości nie jest zgodny z typem funkcji" (Po usunięciu const działa...)

Kopiuj

char* Address::get_city() const {
	return this->city;
}

2) W tym przypadku na ekranie zostają wyświetlone jakieś krzaki (jednak tutaj problem dalej pozostaje, mimo usunięcia const)

Kopiuj
char* Address::get_city() const {
	char _city[50] = { 0 };
	strcpy(_city, this->city);

	return _city;
}

Czy jest ktoś w stanie poprawić tę metodę lub ewentualnie nakierować mnie co robię źle?

Pozdrawiam,

PS. Tak wiem, że mógłbym skorzystać z std::string jednak w treści zadania było napisane, że mam skorzystać z C-stringów.

Azarien
  • Rejestracja: dni
  • Ostatnio: dni
3
Kopiuj
char* Address::get_city() const {
	return this->city;
}
Kopiuj
const char* Address::get_city() const {
	return this->city;
}
Kopiuj
char* Address::get_city() const {
	char _city[50] = { 0 };
	strcpy(_city, this->city);

	return _city;
}

Zwracasz wskaźnik na obiekt lokalny, który przestaje istnieć w momencie wyjścia z funkcji.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.