Страницы

Поиск по вопросам

четверг, 20 июня 2019 г.

Cвойство класса типа текст и метод для возврата этого свойства

Если нужно использовать текстовое поле в классе в private, и написать public метод для получения значения этого поля, как лучше сделать? Сейчас я для хранения пытаюсь использоватьchar* pole либо char pole[10]; Если я правильно понимаю, вернуть массив char нельзя, а как тогда быть?
#include class MyClass { public: int getPole1() { return pole1; } void setPole1(int n) { pole1 = n; } //здесь должны быть аналогичные методы для поля pole2 private: int pole1; char pole2[10]; };
int main() { MyClass my; //здесь я должен установить значение pole2 и затем его получить return 0; }


Ответ

Если у вас учебное задание, то для передачи строки надо использовать тип const char * (он же char const *). Массив символов может неявно приводиться к этому типу данных.
Но хранить в классе строку в виде указателя - нельзя, ведь время жизни экземпляра класса и время жизни строки может и не совпадать. Поэтому в классе надо хранить массив символов, и при записи значения свойства надо копировать строку из параметра в массив либо в цикле, либо при помощи strncpy
Если же у вас реальная задача - то подключайте и просто используйте std::string

Комментариев нет:

Отправить комментарий