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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> 2 использования const 
:(
    Опции темы
 
используете ли вы конструкциb из первого поста?
да, обе [ 10 ]  [24.39%]
да, обе, но нередко забываю [ 4 ]  [9.76%]
только 1 [ 4 ]  [9.76%]
только 1, но нередко забываю [ 2 ]  [4.88%]
только 2 [ 3 ]  [7.32%]
только 2, но нередко забываю [ 1 ]  [2.44%]
нет, но думаю, что надо бы [ 1 ]  [2.44%]
нет, и не собираюсь [ 14 ]  [34.15%]
имхо, это извращения [ 2 ]  [4.88%]
Всего проголосовавших: 41
В этом опросе возможен один вариант ответа
Гости не могут голосовать 
Lazin
Дата 24.4.2009, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

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



Цитата(vinter @  24.4.2009,  06:22 Найти цитируемый пост)
не-POD типы никто по значению и не передает, если явно не требуется. А потребоваться это может только в одном случае - обьект надо изменять внутри ф-ии, а значит и cons Type не катит. Так, что не рассамытриваем этот вариант

а если не POD класс имеет семантику значений? о чем собственно речь и шла smile 
PM MAIL Skype GTalk   Вверх
vinter
Дата 24.4.2009, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


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

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



Цитата(mes @  24.4.2009,  12:34 Найти цитируемый пост)
сигнатура функции есть интерфейс функции.

налицо явное не понимание слова интерфейс, интерфейс может быть у объекта с которым человек работает, т.е интерфейс это набор методов\функциональности который пользователь может использовать для взаимодействия с обьектом, с ф-ие пользователь не взаимодействует, он ее использует. Т.е ф-ия может быть частью интерфейса, но сама интерфейсом не является.
Lazin, пример можешь привести?


--------------------
Мой блог
PM MAIL WWW   Вверх
Lazin
Дата 24.4.2009, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

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



уже приводил

Код

void foo( shared_ptr<Bar> p )
{
   тут можно изменить объект на который ссылается p
}

void cfoo( const shared_ptr<Bar> p )
{
  а тут нет
}

PM MAIL Skype GTalk   Вверх
Alek86
Дата 24.4.2009, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Lazin, можно
Код

namespace boost {

  class bad_weak_ptr: public std::exception;

  template<class T> class weak_ptr;

  template<class T> class shared_ptr {

    public:
// ...
T * get() const; // never throws
// ...


Добавлено через 51 секунду
а дальше делай, что хочешь
нельзя изменить, если
Код
void cfoo( shared_ptr<const Bar> p )


Добавлено через 3 минуты и 2 секунды
хотя reset уже не вызовешь - и то радость smile


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


любитель
****


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

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



Цитата(vinter @  24.4.2009,  12:41 Найти цитируемый пост)
интерфейс может быть у объекта с которым человек работает, 

т.е  по Вашему при процедурном стиле программирования или в функциональном слово "интерфейс" не применимо ?!
Цитата(vinter @  24.4.2009,  12:41 Найти цитируемый пост)
налицо явное не понимание слова интерфейс

во во, и я это заметил  smile 
вот к примеру :
http://ru.wikipedia.org/wiki/%D0%98%D0%BD%...%B5%D0%B9%D1%81

обратите внимание на
Цитата
В контексте отдельного элемента интерфейс элемента противоположен реализации элемента (внутреннему устройству и функционированию). 


Это сообщение отредактировал(а) mes - 24.4.2009, 14:25


--------------------
PM MAIL WWW   Вверх
vinter
Дата 24.4.2009, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


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

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



Цитата(mes @  24.4.2009,  15:14 Найти цитируемый пост)
т.е при процедурном стиле программирования или в функциональном слово "интерфейс" не применимо ?!

применимо конечно, вот например в С есть интерфейс работы с файлами, это структура FILE и все ф-ии которые работают с этой структурой и поставляются с ней вместе. Здесь в роли объекта выступает файл.
Только причем тут это, вы тут народу впариваете что сигнатура ф-ии есть ее интерфейс, а это чушь.

Lazin, ок, притворимся, что поста Alek86 вообще не было. Я переписываю твой второй пример на 
Код

void cfoo( const shared_ptr<Bar>& p )
{
  а тут нет
}

и мы имеем то же самое, но с передачей по ссылке. Зачем нам нужен был изврат с передачей по значению?


--------------------
Мой блог
PM MAIL WWW   Вверх
Alek86
Дата 24.4.2009, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(vinter @  24.4.2009,  14:24 Найти цитируемый пост)
Зачем нам нужен был изврат с передачей по значению?

shared_ptr часто для многопоточных приложений используется
при вызове cfoo при создании другого потока должна быть передача по значению


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


любитель
****


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

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



Цитата(vinter @  24.4.2009,  13:24 Найти цитируемый пост)
вы тут народу впариваете 

попрошу поаккуратней с выражениями.

Цитата(vinter @  24.4.2009,  13:24 Найти цитируемый пост)
сигнатура ф-ии есть ее интерфейс

да,(в зависимости от контекста с именем или без)
к примеру в псевдокоде

Код

// функция any_func предоставляет нам интерфейс
__interface (any_func)  =  int () (int);

//и рeализацию
__implementation (any_func) : __args (i) = {   __result = ++i;  }

//



Это сообщение отредактировал(а) mes - 24.4.2009, 14:49


--------------------
PM MAIL WWW   Вверх
vinter
Дата 24.4.2009, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


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

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



Цитата(Alek86 @  24.4.2009,  15:36 Найти цитируемый пост)
shared_ptr часто для многопоточных приложений используетсяпри вызове cfoo при создании другого потока должна быть передача по значению

тогда shared_ptr тут вообще не нужен, здесь логичнее использовать weak_ptr

Цитата(mes @  24.4.2009,  15:42 Найти цитируемый пост)
функция any_func предоставляет нам интерфейс

mes, еще раз тебе объясняю, интерфейс должен быть к чему то, он не может сам по себе витать в воздухе. То что ты привел, это разделение декларации и определения, то что это кто-то называет разделение интерфейса и реализации это не верно!
Можно назвать разделением интерфейса .h и .cpp где в .h файле содержится группа ф-ий которые составляют интерфейс к некому логическому объекту, который их вокруг себя объединяет. 


--------------------
Мой блог
PM MAIL WWW   Вверх
mes
Дата 24.4.2009, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

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



Цитата(vinter @  24.4.2009,  13:52 Найти цитируемый пост)
mes, еще раз тебе объясняю, интерфейс должен быть к чему то, он не может сам по себе витать в воздухе. 

 smile никакого воздуха : _интерфейс функции_ smile

Добавлено @ 15:04
Цитата(vinter @  24.4.2009,  13:52 Найти цитируемый пост)
. То что ты привел, это разделение декларации и определения,

нет, Вы не с той стороны смотрите, всецело поглащены правилами грамматики cpp. Взгляните шире.
Интерфейс у функции есть, даже если нет декларации.   smile 
Определение функции в cpp описывает и интерфейс и реализацию функцию.
А вынос деклараций в хидер описывает интерфейс  "библиотеки" (набора функциональности)

Добавлено через 12 минут и 7 секунд
Цитата(vinter @  24.4.2009,  13:52 Найти цитируемый пост)
некому логическому объекту, который их вокруг себя объединяет.  

вот вот, а  что является логическим объектом решает контекст рассмотрения. И ничего не мешает быть логическим объектом одной маленькой  функции. smile

Это сообщение отредактировал(а) mes - 24.4.2009, 15:07


--------------------
PM MAIL WWW   Вверх
vinter
Дата 24.4.2009, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


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

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



Цитата(mes @  24.4.2009,  15:58 Найти цитируемый пост)
вот вот, а  что является логическим объектом решает контекст рассмотрения. И ничего не мешает быть логическим объектом одной маленькой  функции. 

нет не может. Я устал с тобой спорить, читай Саттера до просветления.

Добавлено через 46 секунд
Цитата(mes @  24.4.2009,  15:58 Найти цитируемый пост)
_интерфейс функции_

у ф-ии нет и не может быть интерфейса, т.к интерфейс бывает только у объекта. Ф-ия это действие.


--------------------
Мой блог
PM MAIL WWW   Вверх
Fazil6
Дата 24.4.2009, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(vinter @  24.4.2009,  15:17 Найти цитируемый пост)
у ф-ии нет и не может быть интерфейса, т.к интерфейс бывает только у объекта. Ф-ия это действие. 

а mes говорит, что может...
А еще мне брат друга соседа сказал, что может быть у функции интерфейс, но он подругому называется и не у каждой. 

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


uploading...
****


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

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



Опять споры по поводу терминологии...

Добавлено через 8 минут и 24 секунды
Цитата

интерфейс бывает только у объекта. Ф-ия это действие. 

А у устройства может быть интерфейс? Или у класса? а у приложения?
Цитата

вы тут народу впариваете 

Цитата

читай Саттера до просветления

грубо товарищь.

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


любитель
****


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

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



Цитата(vinter @  24.4.2009,  14:17 Найти цитируемый пост)
нет не может. Я устал с тобой спорить, читай Саттера до просветления.

классная аргументация, без комментариев.


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


Explorer
****


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

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



Цитата(azesmcar @  24.4.2009,  16:40 Найти цитируемый пост)
А у устройства может быть интерфейс? Или у класса? а у приложения?

все что ты перечислил является объектами.

Цитата(Fazil6 @  24.4.2009,  16:37 Найти цитируемый пост)
а mes говорит, что может...

так пусть он аргументирует, как у action может быть интерфейс ;)

Добавлено через 1 минуту и 24 секунды
Цитата(mes @  24.4.2009,  17:00 Найти цитируемый пост)
классная аргументация, без комментариев.

я аргументы привел, ты лбом уперся и твердишь одно и тоже заведомо ложное утверждение. Я тебя отослал к классику, могу еще отослать к словарям, поможет ли?


--------------------
Мой блог
PM MAIL WWW   Вверх
Страницы: (5) Все 1 2 [3] 4 5 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

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

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


 




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


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

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