HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 06.07.2009, 23:47
horlyk
Участник форума
Регистрация: 02.12.2007
Сообщений: 132
Провел на форуме:
233095

Репутация: 21
По умолчанию

Меня интересует что содержится в ссылке, а что в указателе на момент возврата - адрес что-то другое...

В чем разница, если я напишу так:

Код:
Cat &func2(Cat *cat1)
{
	cout << "func2...\n";
	cat1->SetAge(7);
	cout << "Age is " << cat1->GetAge() << endl;
	return *cat1;
}
а не так:

Код:
Cat *func2(Cat *cat1)
{
	cout << "func2...\n";
	cat1->SetAge(7);
	cout << "Age is " << cat1->GetAge() << endl;
	return cat1;
}

что означает значок * или & у имени ф-и? и что в итоге возвратится - адрес что-то другое?

Последний раз редактировалось horlyk; 07.07.2009 в 00:09..
 
Ответить с цитированием

  #2  
Старый 07.07.2009, 01:07
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме:
1354067

Репутация: 599


По умолчанию

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

  #3  
Старый 07.07.2009, 10:56
Fata1ex
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
Провел на форуме:
4205500

Репутация: 930


По умолчанию

При передаче аргумента по указателю использовать все время разименовывание обычно неудобно и код выглядит некрасиво, хотя здесь это не очень заметно.
 
Ответить с цитированием

  #4  
Старый 07.07.2009, 18:24
Alpha][
Познающий
Регистрация: 19.10.2007
Сообщений: 72
Провел на форуме:
255436

Репутация: 14
По умолчанию

Посоветуйте что почитать про работу с устройствами , подключенными через usb и com . язык с++ .
 
Ответить с цитированием

  #5  
Старый 07.07.2009, 18:32
_antony
Познающий
Регистрация: 16.07.2008
Сообщений: 82
Провел на форуме:
424387

Репутация: 142
По умолчанию

Агурова , Уолтера Они .
 
Ответить с цитированием

  #6  
Старый 07.07.2009, 21:03
horlyk
Участник форума
Регистрация: 02.12.2007
Сообщений: 132
Провел на форуме:
233095

Репутация: 21
По умолчанию

Ra$cal, Fata1ex, спасибо. То есть если возле имени ф-и стоит значок ссылки или указателя, то ф-я должна вернуть адрес, я правильно понял?

Последний раз редактировалось horlyk; 07.07.2009 в 21:07..
 
Ответить с цитированием

  #7  
Старый 07.07.2009, 21:18
Fata1ex
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
Провел на форуме:
4205500

Репутация: 930


По умолчанию

Cat* func1(Cat *cat1)
Cat& func2(Cat *cat1)

Возможно так будет понятнее. То что стоит слева от названия функции в данном случае является типом возвращаемого значения. Т.е. первая функция возвращает указатель на объект класса Cat, а вторая ссылку на него.
 
Ответить с цитированием

  #8  
Старый 07.07.2009, 21:48
horlyk
Участник форума
Регистрация: 02.12.2007
Сообщений: 132
Провел на форуме:
233095

Репутация: 21
По умолчанию

О, теперь понял, большое спасибо!
 
Ответить с цитированием

  #9  
Старый 08.07.2009, 13:55
mr.The
Познавший АНТИЧАТ
Регистрация: 30.04.2007
Сообщений: 1,205
Провел на форуме:
4778940

Репутация: 1257


По умолчанию

нужно заюзать регулярки. скачал пак с оф-сайта (pcre.org), подключил либы, всё хорошо. только вот за прогой нужно таскать dll весом ~150 кб. есть несколько проблем:
1) убрать длл. что бы был только exe, и при этом он везде работало.
2) желательно - уменьшить размер. (там полно не нужных мне функций)

пробовал сделать и то и другое. подключил к проекту нужные заголовки и файлы. всё-бы ничего, но компилятор ругается:

Цитата:
...
obj\Release\pcre_compile.o:pcre_compile.c:(.text+0 x966)||undefined reference to `__pcre_OP_lengths'|
obj\Release\pcre_compile.o:pcre_compile.c:(.text+0 x128a)||undefined reference to `__pcre_is_newline'|
obj\Release\pcre_compile.o:pcre_compile.c:(.text+0 x5c2f)||undefined reference to `__pcre_OP_lengths'|
....
пробовал подключать pcre либы и гуглить - не помогло.
собственно сабж: как это сделать? либо, есть ли более лёгкие(возможно, менее функциональные) реализации регулярок?

Последний раз редактировалось mr.The; 08.07.2009 в 13:58..
 
Ответить с цитированием

  #10  
Старый 08.07.2009, 19:10
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме:
1354067

Репутация: 599


По умолчанию

попробуй регэкспы из буста поюзать. там есть статическая линковка. а на счет размреа - хз. там много кода нужно чтоб это работало. нужно идти на жертвы.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Часто задаваемые вопросы по MySQL Серый PHP 5 28.12.2006 18:26
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости. Обсуждения. 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Уязвимости CMS / форумов 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.