Спасибо РСДН!
От: LaptevVV Россия  
Дата: 26.10.07 11:25
Оценка: 483 (26)
Питер выпустил из печати мою книжку

Благодарности
Не могу не поблагодарить членов команды RSDN, в общении с которыми я провел много часов. Особенная благодарность — признанным знатокам С++: Павлу Кузнецову, Николаю Меркину (Кодт), Валерию Белявцеву (Bell) и Андрею Тарасевичу, чьи подробнейшие разъяснения не раз помогали разобраться в особенностях и нюансах конструкций С++.

Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: Спасибо РСДН!
От: jazzer Россия Skype: enerjazzer
Дата: 26.10.07 11:27
Оценка: +2
Здравствуйте, LaptevVV, Вы писали:

LVV>Питер выпустил из печати мою книжку

LVV>

LVV>Благодарности
LVV>Не могу не поблагодарить членов команды RSDN, в общении с которыми я провел много часов. Особенная благодарность — признанным знатокам С++: Павлу Кузнецову, Николаю Меркину (Кодт), Валерию Белявцеву (Bell) и Андрею Тарасевичу, чьи подробнейшие разъяснения не раз помогали разобраться в особенностях и нюансах конструкций С++.


Подзравляю!
Добавляй в соответствующий раздел ее
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re: Спасибо РСДН!
От: Аноним  
Дата: 26.10.07 11:41
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Питер выпустил из печати мою книжку

Что за книга? Добрый "Питер" выкидывает на страницу http://shop.piter.com/index.phtml.

Поздравляю.

P.S. Предвижу следующий вопрос: где можно скачать?
Re: Спасибо РСДН!
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 26.10.07 11:46
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Питер выпустил из печати мою книжку

LVV>

LVV>Благодарности
LVV>Не могу не поблагодарить членов команды RSDN, в общении с которыми я провел много часов. Особенная благодарность — признанным знатокам С++: Павлу Кузнецову, Николаю Меркину (Кодт), Валерию Белявцеву (Bell) и Андрею Тарасевичу, чьи подробнейшие разъяснения не раз помогали разобраться в особенностях и нюансах конструкций С++.


Поздравляю!

Желаю не останавливаться на достигнутом!


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[2]: Спасибо РСДН!
От: dip_2000 Россия  
Дата: 26.10.07 11:54
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Что за книга? Добрый "Питер" выкидывает на страницу http://shop.piter.com/index.phtml.


вероятно вот это http://shop.piter.com/book.phtml?978591180200

А>P.S. Предвижу следующий вопрос: где можно скачать?

Присоединяюсь :D
Re: Спасибо РСДН!
От: мухоморец Украина  
Дата: 26.10.07 12:38
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Благодарности


а теперь честно,сколько раз написано слово rsdn в книжке ??? )))
Re[2]: Спасибо РСДН!
От: VsevolodC Россия  
Дата: 26.10.07 12:41
Оценка:
Здравствуйте, мухоморец, Вы писали:
М>а теперь честно,сколько раз написано слово rsdn в книжке ??? )))
должно быть 1 раз, и ссылки на него
Re[2]: Спасибо РСДН!
От: LaptevVV Россия  
Дата: 26.10.07 12:58
Оценка: :))) :)))
Здравствуйте, мухоморец, Вы писали:

М>Здравствуйте, LaptevVV, Вы писали:


LVV>>Благодарности


М>а теперь честно,сколько раз написано слово rsdn в книжке ??? )))

Там еще Купаев есть...

Гораздо важнее то, что по умолчанию все, что объявлено внутри класса, недоступно извне. Это сразу накладывает ограничение на инициализацию. Например, определим класс Person с полями «Фамилия» и «Сумма» и структуру OtherPerson с такими же полями:

class Person
{    string Fio;    double Summa; }; 
struct OtherPerson
{    string Fio;    double Summa; };

Теперь определим переменные с инициализацией:
Person Kupaev = { "Купаев М.", 10000.00 };            // ошибка!
OtherPerson Laptev = { "Лаптев В.", 20000.00 };

В первом случае мы получим ошибку при компиляции. Более того, попробуем объявить следующую переменную без инициализации:
Person Kupaev;

Тогда оперировать полями, используя запись Kupaev.Summa или Kupaev.Fio, тоже будет невозможно — компилятор выдаст сообщение об ошибке. Можно сказать, что поля класса невидимы вне класса. Таким образом, конструкция класса скрывает информацию от внешнего мира, реализуя принцип инкапсуляции.

А еще пространство имен RSDN

В пространство имен можно включать и заголовки, например:

namespace RSDN {
#include "TStack.h"  
}

Таким способом мы включаем определение класса TStack в пространство имен RSDN.
...
Стандарт C++ позволяет объявлять синонимы (alias) имен, например:
namespace RSDN = Russian_Software_Development_Network;

Обычно синонимы используются для переопределения длинных имен, придуманных разработчиками библиотек.
Пространство имен разрешается разбивать на части, например
//--модуль m1.cpp
namespace RSDN {
  void f1(void) {...}; 
  int x;
}
//--модуль m2.cpp
namespace RSDN {
  void f2(void) {...}; 
  int y;
  class A{}; 
}

Если в разных единицах трансляции объявлено одно и то же пространство имен, то оно «склеивается» в единое пространство:
namespace RSDN {
  void f1(void) {...}; 
  int x;        
  void f2(void) {...}; 
  int y;
  class A{}; 
}

Именно таким образом «склеивается» стандартное пространство std, которое можно наблюдать в системных заголовочных файлах, размещенных в каталоге include интегрированной среды.

Спасибо РСДН!!!!!
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[3]: Спасибо РСДН!
От: Кодт Россия  
Дата: 26.10.07 13:05
Оценка: 2 (2)
Здравствуйте, dip_2000, Вы писали:

А>>P.S. Предвижу следующий вопрос: где можно скачать?

_>Присоединяюсь :D
Здесь.
... << RSDN@Home 1.2.0 alpha rev. 655>>
Перекуём баги на фичи!
Re[3]: Спасибо РСДН!
От: Roman Odaisky Украина  
Дата: 26.10.07 13:19
Оценка: :)
Здравствуйте, LaptevVV, Вы писали:

LVV>Там еще Купаев есть... :)

LVV>Person Kupaev = { "Купаев М.", 10000.00 }; // ошибка!
LVV>OtherPerson Laptev = { "Лаптев В.", 20000.00 };

Ага, Купаев — ошибка :-)
До последнего не верил в пирамиду Лебедева.
Re[4]: Спасибо РСДН!
От: LaptevVV Россия  
Дата: 26.10.07 13:22
Оценка:
Здравствуйте, Roman Odaisky, Вы писали:

RO>Здравствуйте, LaptevVV, Вы писали:


LVV>>Там еще Купаев есть...

LVV>>Person Kupaev = { "Купаев М.", 10000.00 }; // ошибка!
LVV>>OtherPerson Laptev = { "Лаптев В.", 20000.00 };

RO>Ага, Купаев — ошибка

Не... Это как раз о конфиденциальности данных о зарплате...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: Спасибо РСДН!
От: Анатолий Широков СССР  
Дата: 26.10.07 13:45
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Питер выпустил из печати мою книжку

LVV>

LVV>Благодарности
LVV>Не могу не поблагодарить членов команды RSDN, в общении с которыми я провел много часов. Особенная благодарность — признанным знатокам С++: Павлу Кузнецову, Николаю Меркину (Кодт), Валерию Белявцеву (Bell) и Андрею Тарасевичу, чьи подробнейшие разъяснения не раз помогали разобраться в особенностях и нюансах конструкций С++.


Молодец! Хоть и неблагодарное это занятие "просвещение", но очень нужное!!!
Re: Спасибо РСДН!
От: tilarids Украина tilarids.blogspot.com
Дата: 26.10.07 14:01
Оценка: :))
Здравствуйте, LaptevVV, Вы писали:

LVV>Питер выпустил из печати мою книжку

LVV>

LVV>Благодарности
LVV>Не могу не поблагодарить членов команды RSDN, в общении с которыми я провел много часов. Особенная благодарность — признанным знатокам С++: Павлу Кузнецову, Николаю Меркину (Кодт), Валерию Белявцеву (Bell) и Андрею Тарасевичу, чьи подробнейшие разъяснения не раз помогали разобраться в особенностях и нюансах конструкций С++.


Поздравляю! Теперь можно использовать аббревиатуру RTFhttp://shop.piter.com/book.phtml?978591180200
<вырезано, дабы сохранить место на сервере>
Re[4]: Спасибо РСДН!
От: CiViLiS Россия  
Дата: 27.10.07 03:44
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Здравствуйте, dip_2000, Вы писали:


А>>>P.S. Предвижу следующий вопрос: где можно скачать?

_>>Присоединяюсь :D
К>Здесь.
Пока не будет сказано, что книга не будет оффциально выкладываться в сети из-за договора с издательством или из-за пожеланий автора (или у нас это считается по дефолту? ), то этот не винный вопрос не попадает под действие этих пунктов правил.
... << RSDN@Home 1.2.0 alpha rev. 775>>
"Бог не терпит голой сингулярности" -- Роджер Пенроуз
Re[4]: Спасибо РСДН!
От: dip_2000 Россия  
Дата: 27.10.07 04:35
Оценка:
Здравствуйте, Кодт, Вы писали:

А>>>P.S. Предвижу следующий вопрос: где можно скачать?

_>>Присоединяюсь :D
К>Здесь.

Прощения просим....
Re: Даешь "Гарри Поттер и С++"!
От: c-smile Канада http://terrainformatica.com
Дата: 27.10.07 04:41
Оценка: :))) :)
Субж и поздравляю
Re[3]: Спасибо РСДН!
От: _FRED_ Черногория
Дата: 27.10.07 12:13
Оценка: +1
Здравствуйте, LaptevVV, Вы писали:

LVV>class Person
LVV>{    string Fio;    double Summa; };


Меня всегда интересовало: чем руководствуются авторы учебной литературы при выборе имён идентификаторов? "Person" уже очень неплохо, но вот поля не годятся никуда (на мой строгий взгляд). Уж не из-за этого ли в КУ и появляются посты, осмеивающие (и поделом!) имена классов и переменных, подсмотренные у молодых коллег? А то ведь получается, что "коллеги" и не виноваты
Help will always be given at Hogwarts to those who ask for it.
Re[4]: Спасибо РСДН!
От: LaptevVV Россия  
Дата: 27.10.07 12:22
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>Здравствуйте, LaptevVV, Вы писали:


_FR>
LVV>>class Person
LVV>>{    string Fio;    double Summa; }; 
_FR>


_FR>Меня всегда интересовало: чем руководствуются авторы учебной литературы при выборе имён идентификаторов? "Person" уже очень неплохо, но вот поля не годятся никуда (на мой строгий взгляд). Уж не из-за этого ли в КУ и появляются посты, осмеивающие (и поделом!) имена классов и переменных, подсмотренные у молодых коллег? А то ведь получается, что "коллеги" и не виноваты

Критикуешь — предлагай!
Учтем...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[5]: Спасибо РСДН!
От: wallaby  
Дата: 27.10.07 12:31
Оценка: 20 (4) +2
Здравствуйте, LaptevVV, Вы писали:

_FR>>
LVV>>>class Person
LVV>>>{    string Fio;    double Summa; }; 
_FR>>


LVV>Критикуешь — предлагай!

LVV>Учтем...

Fio будет FullName, Summa — Salary (если имеется в виду оклад)
Если кто не знает английский пусть учит — все равно понадобится читать документацию.
---
The optimist proclaims that we live in the best of all possible worlds; and the pessimist fears this is true
Re[5]: Спасибо РСДН!
От: _FRED_ Черногория
Дата: 27.10.07 15:23
Оценка: +2
Здравствуйте, LaptevVV, Вы писали:

LVV>Критикуешь — предлагай!


Виноват — это казалось очевидным моя [частая] ошибка Ответ уже, спасибо wallaby, есть.

LVV>Учтем...


Спасибо

Ну и заодно: имхо, вообще, к учебному (обучающему) коду надо относиться как к эталонному — учащемуся больше несчего копировать некоторые решения (ну зачем искать в нескольких источниках, сравнивать и делать выводы, как приходится в работе); наверняка ведь видно, что некоторые куски копи-пэйстятся от курсовой к курсовой — пусть и это идёт на пользу, так как "культура" написания сродни почерку — менять непросто и больно.
Зато, когда в "боевых условиях" бывший студент поймёт, чему же его на самом деле [и в тайне от него] научили и насколько это оказывается важным (и, не побоюсь "громкого" слова, "решающим")... [Эх, спасибо моим учителям ]
Help will always be given at Hogwarts to those who ask for it.
Re: Кто читал?
От: Аноним  
Дата: 29.10.07 08:27
Оценка:
Стоящая книга?
Re[2]: Кто читал?
От: anonim_44ax  
Дата: 29.10.07 08:45
Оценка:
А>Стоящая книга?
Напомнило из сайтов с халявой: "Как книга? Стоит качать?". Качать наверное стоит
Re[2]: Даешь "Гарри Поттер и С++"!
От: Кодт Россия  
Дата: 29.10.07 09:27
Оценка: 21 (1) :))) :)
Это к Александреску. Гарри Поттер и Синглетон-Феникс
... << RSDN@Home 1.2.0 alpha rev. 655>>
Перекуём баги на фичи!
Re[6]: Спасибо РСДН!
От: LaptevVV Россия  
Дата: 29.10.07 09:47
Оценка:
Здравствуйте, _FRED_, Вы писали:

LVV>>Критикуешь — предлагай!

_FR>Виноват — это казалось очевидным моя [частая] ошибка Ответ уже, спасибо wallaby, есть.
Не, самым сложным оказывается как раз вроде бы очевидное...
_FR>Ну и заодно: имхо, вообще, к учебному (обучающему) коду надо относиться как к эталонному — учащемуся больше несчего копировать некоторые решения (ну зачем искать в нескольких источниках, сравнивать и делать выводы, как приходится в работе); наверняка ведь видно, что некоторые куски копи-пэйстятся от курсовой к курсовой — пусть и это идёт на пользу, так как "культура" написания сродни почерку — менять непросто и больно.
У меня несколько другое мнение... Как раз во время учебы самое время поискать в нескольких источниках, сравнить и выработать собственную культуру написания... Dj время работы это просто некогда делать — проект сдавать нужно...
К сожалению студенты поступают наоборот... Вот только сейчас на лабе в очередной раз вдалбливал вроде бы достаточно умному студенту...
Он пишет заголовок методы:
void operator+(Money b);

Блин, я на лекциях все уши прожужжал, что результатом операции сложения должен быть объект того же класса!
Он еще попытался два параметра в методе написать — я ему опять: левый аргумент операции сложения — текущий объект, правый — параметр... Говорит, что на лекции был... Тогда я не понимаю, как этого можно было не услышать, если я несколько раз повторил это, да и примеры с отсутствием коммутативности приводил...
Еще раз повторяю, что студент не дурак, пишет все сам... Но каждый раз возникает типа "и так работает"...
У нас таким образом списываю как раз "халявщики", которые сами не хотят писать, а только мечтают добраться до диплома...
_FR>Зато, когда в "боевых условиях" бывший студент поймёт, чему же его на самом деле [и в тайне от него] научили и насколько это оказывается важным (и, не побоюсь "громкого" слова, "решающим")... [Эх, спасибо моим учителям ]
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[7]: Спасибо РСДН!
От: _FRED_ Черногория
Дата: 29.10.07 10:20
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Не, самым сложным оказывается как раз вроде бы очевидное...


+1

_FR>>Ну и заодно: имхо, вообще, к учебному (обучающему) коду надо относиться как к эталонному — учащемуся больше несчего копировать некоторые решения (ну зачем искать в нескольких источниках, сравнивать и делать выводы, как приходится в работе); наверняка ведь видно, что некоторые куски копи-пэйстятся от курсовой к курсовой — пусть и это идёт на пользу, так как "культура" написания сродни почерку — менять непросто и больно.

LVV>У меня несколько другое мнение... Как раз во время учебы самое время поискать в нескольких источниках, сравнить и выработать собственную культуру написания... Dj время работы это просто некогда делать — проект сдавать нужно...
LVV>К сожалению студенты поступают наоборот...

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

LVV>Блин, я на лекциях все уши прожужжал, что результатом операции сложения должен быть объект того же класса!

LVV>Он еще попытался два параметра в методе написать — я ему опять: левый аргумент операции сложения — текущий объект, правый — параметр... Говорит, что на лекции был... Тогда я не понимаю, как этого можно было не услышать, если я несколько раз повторил это, да и примеры с отсутствием коммутативности приводил...

Гхм… А разве не является более предпочтительной перегрузка операторов как статических методов? Она и "интуитивнее" понятнее: два аргумента и один результат, всё как в алгебре.

LVV>Еще раз повторяю, что студент не дурак, пишет все сам... Но каждый раз возникает типа "и так работает"...

LVV>У нас таким образом списываю как раз "халявщики", которые сами не хотят писать, а только мечтают добраться до диплома...

"Халявщики" списывают "с кого-то", поэтому научив "локомотив", получится покрыть и "вагончики".
... << RSDN@Home 1.2.0 alpha rev. 717>>
Help will always be given at Hogwarts to those who ask for it.
Re: Спасибо РСДН!
От: Pavel Dvorkin Россия  
Дата: 30.10.07 02:57
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Питер выпустил из печати мою книжку


Поздравляю!
With best regards
Pavel Dvorkin
Re[2]: Спасибо РСДН!
От: LaptevVV Россия  
Дата: 30.10.07 05:50
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Здравствуйте, LaptevVV, Вы писали:


LVV>>Питер выпустил из печати мою книжку


PD>Поздравляю!

Спасибо!
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[8]: Спасибо РСДН!
От: LaptevVV Россия  
Дата: 30.10.07 06:05
Оценка:
Здравствуйте, _FRED_, Вы писали:

LVV>>К сожалению студенты поступают наоборот...

_FR>Вот именно поэтому процесс обучения надо организовать так, когда обучаемый "хош-не-хош" достигает результата. Это не мои фантазии: современные системы менеджмента качества устроены таким образом, что бы максимально исключить брак за счёт организации самого производственного процесса.
Ну, если о менеджменте качества говорить, то эта лабуда по стандарту ISO 9000? в которую мы сдуру влезли, только добавила головной боли...

_FR>Гхм… А разве не является более предпочтительной перегрузка операторов как статических методов? Она и "интуитивнее" понятнее: два аргумента и один результат, всё как в алгебре.

Это да, но тут я как раз на практике реализую гарантированное обучение... Вот пример задания, который они выполняют...

Структуры и классы
Во всех заданиях, помимо указанных в задании операций, обязательно должны быть реализованы следующие методы:
— метод инициализации Init;
— ввод с клавиатуры Read;
— вывод на экран Display;
— преобразования в строку toString.
Все задания должны быть реализованы тремя способами:
1. тип данных представляется структурой с необходимыми полями, а операции реализуются как внешние функции,
которые получают объекты данного типа в качестве параметров;
2. как класс с закрытыми полями, а операции реализуются как методы класса;
3. инкапсулировать поля класса в независимой структуре и в ней реализовать методы Init(), Read(), Display(),
toString(); в основном классе должно быть одно поле данных, представленное объектом-структурой.

24. Создать класс Money для работы с денежными суммами. Число должно быть представлено двумя полями: типа long для рублей и типа unsigned char — для копеек. Дробная часть (копейки) при выводе на экран должны быть отделены от целой части символом запятая. Реализовать сложение сумм, вычитание сумм, деление сумм, деление на суммы на дробное число, умножение на дробное число и операции сравнения.
32. Реализовать класс Account, представляющий собой банковский счет. В классе должны быть четыре поля: фамилия владельца, номер счета, процент начисления и сумма в рублях. Открытие нового счета выполняется операцией инициализации. Необходимо выполнять следующие операции: сменить владельца счета, снять некоторую сумму денег со счета, положить деньги на счет, начислить проценты, перевести сумму в доллары, перевести сумму в евро, получить сумму прописью (преобразовать в числительное).

Композиция классов и объектов
Во всех задачах требуется реализовать по два-три класса. Один класс является основным, остальные — вспомогательные. Вспомогательные классы должны быть определены как независимые. Объекты вспомогательных классов должны использоваться в качестве полей основного класса.
41. Реализовать класс Account (задание 32), используя для представления суммы класс Money из задания 24.

Реализовать задания 21-40, определив соответствующую структуру как вложенную.
Реализовать задания 41-60, используя конструкцию вложенного класса.
Выполнить задания 1.21-1.40 как независимые классы с конструкторами и перегрузкой операций. Все операции определить как внешние дружественные функции.
Выполнить задания 1.21-1.40 с конструкторами и перегрузкой операций. Поля класса инкапсулировать в подходящей структуре, а в классе должно быть одно поле данных, представленное объектом-структурой Используемую в задании структуру нужно реализовать с конструктором инициализации, перегрузить для нее операции ввода/вывода как внешние дружественные функции.
Выполнить задания 1.41-1.60 с конструкторами и перегрузкой операций.
Выполнить задания 1.41-1.60 с конструкторами и перегрузкой операций, используя конструкцию вложенного класса вместо композиции.
Выполнить задания 1.41-1.60 с конструкторами и перегрузкой операций, используя конструкцию вложенного класса вместо композиции; добавить подсчет объектов для внутренних классов.

Ну и так далее — выполняют те же задания с разных сторон...
Поэтому в конкретном варианте задания я настаиваю на выполнении "требований заказчика"
_FR>"Халявщики" списывают "с кого-то", поэтому научив "локомотив", получится покрыть и "вагончики".
Вообще-то говоря, если он мне по списанному может внятно ответить на ряд вопросов — я не придираюсь... А вот если содрал и не обдумал — тогда заворачиваю... Чтоб хотя бы посмотрел, что списал...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[9]: Спасибо РСДН!
От: _FRED_ Черногория
Дата: 31.10.07 18:16
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Ну, если о менеджменте качества говорить, то эта лабуда по стандарту ISO 9000? в которую мы сдуру влезли, только добавила головной боли...


А, ну против такого мне нечего возразить
Help will always be given at Hogwarts to those who ask for it.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.