![]() |
|
Модераторы: bsa |
![]()
|
|
| yngwie19 |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
Здравствуйте есть класс
Подскажите как при создании объекта, например:
инициализировать поле Employee::name ? |
||||
|
|||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 6 Всего: 162 |
Не забудь про деструктор класса. Или вообще используй std::string вместо const char*. |
|||
|
||||
| yngwie19 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
JackYF, спасибо, в деструкторе нужно использовать соответственно free ?
|
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 6 Всего: 162 |
yngwie19,
Да. |
|||
|
||||
| yngwie19 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
я с таким же успехом мог бы написать свою функцию с помощью new, Правильно?
Это сообщение отредактировал(а) yngwie19 - 15.9.2010, 19:46 |
|||
|
||||
| djamshud |
|
|||
![]() Пердупержденный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 23.11.2009 Репутация: 4 Всего: 39 |
yngwie19, а копировать строку в temp кто будет?
ЗЫ. Для char и других простых типов new излишен. Определитесь, вам си или си++. Если второе, исп. std::string. Добавлено через 40 секунд ЗЗЫ, Копирование строки - strcpy. И он сам поставит 0 в конец. Добавлено через 1 минуту и 31 секунду ЗЗЗЫ. Хотя тут лучше использоваться memcpy, ибо strlen все равно уже вычислен. Добавлено через 2 минуты и 24 секунды Финальный ЗЫ: memcpy ноль в конец не поставит:). -------------------- 'Cuz I never walk away from what I know is right Alice Cooper - Freedom |
|||
|
||||
| Vovan222 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 9.9.2010 Репутация: нет Всего: нет |
||||
|
||||
| bsa |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Если это вопрос, то ответ ДА. И будут у него проблемы, так как free принимает неконстантный указатель. В твоем случае, единственно правильный вариант:
|
||||||
|
|||||||
| djamshud |
|
|||
![]() Пердупержденный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 23.11.2009 Репутация: 4 Всего: 39 |
bsa, мы имели в виду использовать внутри char* :)
-------------------- 'Cuz I never walk away from what I know is right Alice Cooper - Freedom |
|||
|
||||
| yngwie19 |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
Всем спасибо. Подскажите что предпочтительнее:
или
|
||||
|
|||||
| djamshud |
|
|||
![]() Пердупержденный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 23.11.2009 Репутация: 4 Всего: 39 |
стринг
-------------------- 'Cuz I never walk away from what I know is right Alice Cooper - Freedom |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
||||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
azesmcar, ну я бы не был столь однозначен. Так как зависит от задачи. Если речь идет о функторе, то вариант со ссылкой предпочтительней, а если о каком-то самостоятельном объекте, время жизни которого может быть больше, чем область видимости создавшей его функции, то лучше обойтись без ссылок.
|
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
bsa, как я понял, учитывая приведенный код тс в предшествующем сообщении, azesmzar предложил константную ссылку сделать аргументом конструктора, а не полем объекта класса.
|
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
||||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
||||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |