Problem z metodami typu const

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...)


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)

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.

3
char* Address::get_city() const {
	return this->city;
}
const char* Address::get_city() const {
	return this->city;
}
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.

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