Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Возврат функцией char[index] 
V
    Опции темы
lv151
Дата 9.4.2009, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 916
Регистрация: 11.2.2008

Репутация: нет
Всего: 2



Возможно ли:
char[5] Class::GetMass()
{
......
}?

PM MAIL   Вверх
InvalidProperty
Дата 9.4.2009, 15:01 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 356
Регистрация: 31.10.2007
Где: Россия, Казань

Репутация: 2
Всего: 9



нет. Если хочешь вернуть массив, возвращай указатель. Если не хочешь возвращать указатель - возвращай ссылку на объект

Это сообщение отредактировал(а) InvalidProperty - 9.4.2009, 15:03


--------------------
dd if=$0 of=$0 bs=1 count=76 seek=`du -b $0 | awk {'print $1'}` 2>/dev/null
dd if=$0 of=$0 bs=1 count=67 conv=notrunc oflag=append 2>/dev/null
echo $0 >> $0
PM MAIL ICQ Jabber   Вверх
azesmcar
Дата 9.4.2009, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 52
Всего: 211



lv151

возможно
Код

char* Class::GetMass()
{
......
}

но лучше не надо..делай или так
Код

std::string Class::GetMass()
{
......
}

или так
Код

void Class::GetMass(char* buffer, int bufsize)
{
......
}


Это сообщение отредактировал(а) azesmcar - 9.4.2009, 15:04
PM   Вверх
lv151
Дата 9.4.2009, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 916
Регистрация: 11.2.2008

Репутация: нет
Всего: 2



Ясно. Спасибо.

Это сообщение отредактировал(а) lv151 - 9.4.2009, 15:06
PM MAIL   Вверх
J0ker
Дата 9.4.2009, 16:05 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 986
Регистрация: 17.9.2008

Репутация: 9
Всего: 14



можно вернуть ссылку
Код

char (&Class::GetMass())[5]
{
......
}



--------------------
user posted image
PM MAIL   Вверх
Anikmar
Дата 9.4.2009, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 5
Всего: 59



Цитата(J0ker @  9.4.2009,  16:05 Найти цитируемый пост)
char (&Class::GetMass())[5]

И это откомпилится? 
PM MAIL ICQ   Вверх
J0ker
Дата 9.4.2009, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 986
Регистрация: 17.9.2008

Репутация: 9
Всего: 14



Цитата(Anikmar @ 9.4.2009,  16:08)
Цитата(J0ker @  9.4.2009,  16:05 Найти цитируемый пост)
char (&Class::GetMass())[5]

И это откомпилится?

и к бабке не ходить  smile 


--------------------
user posted image
PM MAIL   Вверх
Rififi
Дата 9.4.2009, 22:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1254
Регистрация: 9.3.2008

Репутация: 3
Всего: 36



J0ker
можно вернуть ссылку
    
char (&Class::GetMass())[5]
{
......
}

самого интересного и не показал. return что?

а вообще, совершенно искусственная и малоприменимая конструкция.
увидь такое где-либо в коде, долго бы размышлял, что, и в каких количествах могло вызвать такой приход... :gigi:

Это сообщение отредактировал(а) Rififi - 9.4.2009, 22:27
PM MAIL   Вверх
J0ker
Дата 9.4.2009, 23:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 986
Регистрация: 17.9.2008

Репутация: 9
Всего: 14



Цитата(Rififi @  9.4.2009,  22:27 Найти цитируемый пост)
самого интересного и не показал. return что?

Код

char (&Class::GetMass())[5]
{
    static char buf[5];
    return buf;
}




--------------------
user posted image
PM MAIL   Вверх
and277
Дата 10.4.2009, 07:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 9.4.2009

Репутация: нет
Всего: нет



Цитата(J0ker @ 9.4.2009,  23:00)
Цитата(Rififi @  9.4.2009,  22:27 Найти цитируемый пост)
самого интересного и не показал. return что?

Код

char (&Class::GetMass())[5]
{
    static char buf[5];
    return buf;
}

А что в этой функции можно считать параметром? Определение функции похоже на объявление массива. Где же стандарное определение функции : type name_func(spisok parametrov) {code} .
Непонятно зачем массив там - это параметр или что? И почему он не в круглых скобках тогда?
 
Друзья, прокомментируйте конструкцию char (&Class::GetMass())[5] 

PM MAIL   Вверх
zim22
Дата 10.4.2009, 07:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Цитата(and277 @  10.4.2009,  07:29 Найти цитируемый пост)
Друзья, прокомментируйте конструкцию char (&Class::GetMass())[5] 

GetMass - это функция, определённая в пространстве имён Class, которая возвращает ссылку на массив из пяти элементров типа char


--------------------
PM MAIL   Вверх
and277
Дата 10.4.2009, 07:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 9.4.2009

Репутация: нет
Всего: нет



Цитата(zim22 @ 10.4.2009,  07:34)
Цитата(and277 @  10.4.2009,  07:29 Найти цитируемый пост)
Друзья, прокомментируйте конструкцию char (&Class::GetMass())[5] 

GetMass - это функция, определённая в пространстве имён Class, которая возвращает ссылку на массив из пяти элементров типа char

А зачем там (char (&Class::GetMass())[5])     тогда [5] в первой строке  Или это акцент на то что возврат ссылки на конкретный массив именно из 5 элементов?
А может тогда так записать char [5] (&Class::GetMass())?
PM MAIL   Вверх
zim22
Дата 10.4.2009, 08:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Цитата(and277 @  10.4.2009,  07:48 Найти цитируемый пост)
А может тогда так записать char [5] (&Class::GetMass())?

попробуйте. если не скомпилится - значит нельзя.


--------------------
PM MAIL   Вверх
xvr
Дата 10.4.2009, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



Цитата(lv151 @ 9.4.2009,  14:58)
Возможно ли:
char[5] Class::GetMass()
{
......
}?

Только если завернуть в структуру
Код

struct Chars5 {
 char data[5];
};

Chars5 Class::GetMass()
{
......
}

PM MAIL   Вверх
Dov
Дата 10.4.2009, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


аСинизатор
***


Профиль
Группа: Завсегдатай
Сообщений: 1721
Регистрация: 10.5.2003
Где: Эрец-Исраэль

Репутация: 11
Всего: 88



Цитата(J0ker @ 9.4.2009,  23:00)
Цитата(Rififi @  9.4.2009,  22:27 Найти цитируемый пост)
самого интересного и не показал. return что?

Код

char (&Class::GetMass())[5]
{
    static char buf[5];
    return buf;
}

Зачем же так извращаться?  smile 
Если хочешь вернуть ссылку на массив и юзаешь static, то делай проще:
Код

char & GetMass()
{
    static char buf[5];
    return *buf;
}



--------------------
Тут вечности запах томительный,
И свежие фрукты дешевые, 
А климат у нас – изумительный, 
И только соседи – #уевые. 
                           Игорь Губерман.
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1079 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.