| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Можно ли передать у функцию структуру |
| Автор: Sergio 23.4.2007, 14:44 | ||
Зраствуйте. Хочу передать структуру как параметр у функцию. Не нашёл инфи по этому. Где нужно определать поля структуры? Вот пример функции:
Зарание спасибо. |
| Автор: Daevaorn 23.4.2007, 14:54 | ||
Структуру надо вначале определить, а уже потом использовать. Например
|
| Автор: vinter 23.4.2007, 14:55 | ||
|
| Автор: Sergio 23.4.2007, 15:20 | ||
Вот я определил структуру:
Мне пишет ошибку в цикле: [C++ Error] File1.cpp(134): E2015 Ambiguity between 'list' and '_STL::list<_Tp,_Alloc>' Что это может быть? |
| Автор: Любитель 23.4.2007, 15:20 |
| vinter, а зачем через типедеф? Его юзают в сях - чтобы ключевое слово struct лишний раз не писать, это понятно, но у тебя передача по ссылке => это плюсы. Добавлено через 3 минуты и 16 секунд Sergio, у тебя похоже стоит using namespace std. Возникает конфликт межу std::lsit и локальной переменной list. От юзинга неймспейса лучше отказаться (поиск по форуму объяснит почему), да и переменную можно назвать по другому Ещё - в данном случае структуру лучше передавать по константной ссылке для избегания лишних копирований. |
| Автор: Любитель 23.4.2007, 15:33 |
[offtop] Прям ломают [/offtop] |
| Автор: EvgenZ 23.4.2007, 15:33 | ||
У нас на работе пальцы ломают за такое в С++ оффтопик //видать большая текучка кадров у вас... |
| Автор: Любитель 23.4.2007, 15:35 |
А может у них много мутантов работают? Каких-нибудь стопальцевых? Или регенерация очень развита: палец отломали - два выросло. Серкретное предприятие, блин |
| Автор: Daevaorn 23.4.2007, 16:18 |
Я так код не пишу нет. вовсе нет. отсеивают хорошо ещё при наборе Да. На территори режимного института |
| Автор: vinter 23.4.2007, 16:19 | ||
старая привычка, структурами просто не пользуюсь |
| Автор: Любитель 23.4.2007, 18:37 |
А вдруг случайно... Да и вообще - мож ещё за что-то тоже ломают пальцы там у вас. Я нисколько не сомневаюсь в твоём опыте программрования, но всё-таки секретный объект, спецрежим... Добавлено через 1 минуту и 35 секунд Да это ничего... Главно не иди работать в секретный объект, где работает Daevaorn |
| Автор: JackYF 23.4.2007, 19:18 | ||
| <имхо> а вообще объявлять переменную с именем list и при этом юзать вектор как-то не то... все вышеотписавшиеся правы насчет "no_using_namespace", но и имена такие лучше не давай </имхо> Добавлено через 3 минуты и 21 секунду
Почему же? Насчет пригрозить поломать пальцы за такой вот typedef'ы - +1. А вообще - отжигаете, господа Добавлено через 7 минут и 10 секунд А, Любитель уже отписал насчет имен... невнимательно смотрел. |
| Автор: Любитель 23.4.2007, 20:46 |
| JackYF, ну вот ты хочешь жить, ожидая, что за случайную глупость (не знаю, как у кого, у меня бывает, что машинально что-то напишешь - потом удивляешься, как такое мог написать...) лишишься (в очередной раз...) пальца? Я - нет. Как закончу универ - ни за что не пойду работать к Daevaornу. ЗЫ Блин, надо закрывать тему... |
| Автор: likehood 23.4.2007, 21:05 | ||||
| Странный код какой-то. Вот здесь вот
по-идее должны сравниваться две строки. Тогда нужно использовать strcmp:
Кроме того, если это условие выполнится, то контакт будет занесен в вектор и когда мы дойдем до конца вектора, будут сравниваться две одинаковых строки. Таким образом, мы получим вечный цикл. Чтобы этого не произошло, можно сохранить исходный размер вектора во временной переменной. |
| Автор: Daevaorn 23.4.2007, 21:11 | ||
Написать глупость по ошибке вполне возможно и допустимо, другое дело, что эта глупость не должна попасть в code review вышестоящих по должности. Главное вовремя одуматься |
| Автор: Любитель 23.4.2007, 21:16 | ||||||
Увлёкшись пальцами, мы и не заметили.
break
Ну, я часто делаю, а потом думаю. Опыта в таком деле нет, но я не уверен... ЛУчше обезопасить свои пальцы и работать где-нибудь в другом месте. ЗЫ Хотя надо привыкать думаь до того, как делать... |
| Автор: vinter 24.4.2007, 08:42 | ||
ну и че пойдет код на code inspection, там зарубят ты поправишь всего делов то |
| Автор: Любитель 24.4.2007, 10:54 |
Вроде только пальцы ломали. Теперь уже рубить начали? И что рубить? И как ты будешь поправлять, если тебя зарубят? |
| Автор: vinter 24.4.2007, 11:06 |
| Любитель, |
| Автор: JackYF 24.4.2007, 16:34 |
Ээ... не знаю, если я такое напишу в здравом уме в программе на С++, то я всячески поддержу угрозу за такое ну если не поломать пальцы, то на недельку лишить компа точно. |
| Автор: Любитель 28.4.2007, 16:59 |
| Изверги. Я после (не по моей воли :( ) писанины то на одном языке, то на другом иногда пять минут думаю - писать bool или boolean, условие в ифе ставляю в скобки, а после добавляю then... Хотя после 20-30 минут - привыкаю, пишу на чём надо |
| Автор: JackYF 28.4.2007, 17:15 | ||
Сочувствую... честно, сочувствую... благо время, когда и нас заставляли писать код на Паскале, кончилось (очень надеюсь, что кончилось после 1-го семестра 1-го курса... Тут суть такая. Если такое писать в лабы на универ - все равно на код толком никто не смотрит, и простительно... все равно универ мало чему толковому научит в плане программинга... а когда будешь работать, то там уже будешь писать преимущественно на одном языке, и таких проблем уже не будет. |
| Автор: Любитель 28.4.2007, 18:04 |
boolean - Java. Другой вариант - catch (Exception e). В шарпе выдаёт варнинг (не люблю варнинги). Буква e не нравиться Не надо во всех бедах винить Дельфи/Паскаль Ну, я второй заканчиваю. Бесполезно... |
| Автор: JackYF 28.4.2007, 18:18 | ||
эта фразу я принял как с Паскалем, потому что в Java then не ставиться после if'a. Логично? |
| Автор: Любитель 28.4.2007, 18:30 | ||
Да. Просто я говорю как раз не про два языка, а: "то один, то другой ...". То был просто пример. ЗЫ Давайте устроим голосование "можно ли за такой код ломать пальцы"? |
| Автор: JackYF 28.4.2007, 18:33 | ||
+1. Поддерживаю. Открывай опрос. |
| Автор: Sartorius 28.4.2007, 18:50 |
| |
| Автор: Mayk 28.4.2007, 18:59 | ||
А если данная структура должна быть одновременно доступна и в си++ и в си? |
| Автор: Любитель 28.4.2007, 19:04 |
| Mayk, судя по векторам и ссылкам в начальном коде - нужен маленький код для плюсов. |
| Автор: JackYF 30.4.2007, 00:09 | ||||
Ну давайте все-таки говорить корректно - "в Украине". Не страна, что ли?
Это же какая, интересно?
Подчеркиваю еще раз, что мое утверждение относилось к программам на С++. На языке С я не пишу (пока, по крайней мере) и его поддерживать не собираюсь. |