Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: 1 [2]  Все   Вниз
  Печать  
Автор Тема: Насчет курсов по C++  (Прочитано 34177 раз)
0 Пользователей и 1 Гость смотрят эту тему.
KerLaede
Гость
« Ответ #30 : 18-08-2004 15:26 » 

Гром извени просто я не знаю английского языка. Из-за этого я немогу прочитать Help, а в машинном переводчике (Promt) сам неверно знаешь ничего не понятно. Поэтому приходится постоянно спрашивать у знающих. Но за эту информацию спасибо! :!:
Записан
Anonymous
Гость
« Ответ #31 : 18-08-2004 17:12 » 

Цитата

А файл который откывается - должен еще записываться не так "D:/temp.txt", ва вот так "D://temp.txt"


а мне кажется так "D:\\temp.txt" Ага
Записан
KerLaede
Гость
« Ответ #32 : 18-08-2004 20:32 » 

Как создавать и загружать динамические библиотеки DLL?
Записан
Jonny
Гость
« Ответ #33 : 24-08-2004 06:45 » 

Здраствуйте! Только вчера наткнулся на ваш сайт. Вашы курсы по С это круто.
Знаю что сильно отстал, но обещаю быстро догнать.
У меня вопрос по второму уроку. Для того чтобы обьект был операндом он  
должен изменять свои признаки или просто может создавать другой обьект не
изменяясь сам?Хорошо а операция X<25.
<-зто оператор,а где здесь операнды?
Вроде ни Х, ни 25 не изменяются и не создают новый обьект?
Помогите разобраться, pls!!!!!
Записан
Never
Команда клуба

ua
Offline Offline
Пол: Женский

« Ответ #34 : 24-08-2004 19:58 » 

Jonny,
Цитата

Знаю что сильно отстал, но обещаю быстро догнать

Это я к сожалению сильно отстала  Жаль Уже давно не писала новых уроков. Но кажется более-менее разобралась со своими траблами, бум продолжать.

Что касается вопроса: не в том смысл, что что-то изменяется, а  в том, что операнды участвуют в операции как (в грамматике есть термин- страдательный объект, т.е. тот, над которым что-то делают) вот здесь скорее этот аспект работает, т.е. операнд, это объект, участвующий в операции
В приведенном тобой примере операнды- х и 25. т.к. они участвуют в операции сравнения, т.е. СРАВНИВАЮТСЯ.
Записан

не умеете летать- не мучайте метлу!
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #35 : 24-08-2004 20:55 » 

Jonny, ты скорее спрашиваешь про перегрузку операторов и конструкторы копирования(я второй урок ничитал такчто извините если не в тему). Кстати советую перефразировать вопрос потому как давольно тяжело понять его суть.
так вот можно перегрузить операторы стравнений <, >, == и !=
bool operator >(classname &rhs, classname &lhs) в этом случае оператор получает ссылку на левую и правую части выражения и возвращает логическое значение какими критерия оператор пользуется при определении результата уже не важно. Далее при декларации класса нужно указать, что оператор дружественен ему в этом случае оператор получит доступ к скрытым свойствам и методам класса.
При наличии оператора ты можешь использовать объекты как простые переменные встроенных типов. из объявления оператора ты маг заметить что его операнды это выражения стоящие от него слева и справа.

Конструктор копирования необходим для корректного копирования объекта. Например передача объекта функции по значению и операция присваивания. Особенно важен конструктор копирования в случае если объект создаёт для внутренних целей какие-то свои динамические структуры.
Пример:
Код:
class X
{
int *px;
X(int init) {px = new int; *px = init;}
~X() {delete px;}
}
void print (X x)
{
printf(“%d\n”*x.px);
}

int main()
{
X x(25); print(x);
X y(16); print(x); print(y);
return 0;
}

Так вот в этот пример будет компилироваться но не будет работать.
Причина довольно банальна, но у меня решения подобной проблемы отняло некоторое время. И так тут при первом вызове функции print вызывается конструктор копирования класса по умолчанию который тупо копирует все данные класса в том числе и значение указателя. Далее при выходе из функции вызывается деструктор класса(чего не случилось бы если передавать ссылку на объект) а деструктор возвращает в кучу область памяти на которую указывает px, но в оригинале объекта указатель всё еще указывает на эту область хотя она уже возвращена куче. И при повторном вызове print(x) происходит обращение к «неизвестной» области памяти.
Вот еще пример с тем же эффектом:
Код:
int main()
{
X x(25);
{
X tmp=x;
}
print(x);
return 0;
}
В этом примере переменная tmp уничтожилась при выходи из области видимости {}.

Решается это двумя путями первый передача параметра по ссылке или конструктором копирования.
Вот код конструктора копирования для нашего случая(если я не ошибся с объявлением):
Код:
X (X init) { px = new int; px = *init.px;}

Вот так!
« Последнее редактирование: 28-11-2007 16:34 от Алексей1153++ » Записан

Странно всё это....
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #36 : 24-08-2004 21:02 » 

Прочёл второй урок. Кажется я ляпнул лишнего.  Отлично
Большн не буду. Исправлюсь.
Записан

Странно всё это....
Jonny
Гость
« Ответ #37 : 25-08-2004 07:56 » 

Спасибо NEVER за легкое и доступное обьяснение.Теперь ясно.
Спасибо и LoqRus,но понимание того что Вы ответили надеюсь прийдет позже.
Продолжаю нагонять.
Записан
Jonny
Гость
« Ответ #38 : 25-08-2004 10:55 » 

Вот прочел урок "Внутренняя форма представления данных в компьютере и недесятичные системы счисления".Очень интересно а есть не позиционные
системы счисления?          Заранее спасибо.
Записан
Never
Команда клуба

ua
Offline Offline
Пол: Женский

« Ответ #39 : 25-08-2004 19:30 » 

LogRus, мда! Оторвался ты  на всю  катушку  Отлично  Ага
Jonny писал
Цитата
понимание того что Вы ответили надеюсь прийдет позже
, до этого мы еще не очень  скоро доберемся  Отлично Но, надеюсь, что доползем...
Кстати, это оффтоп, конечно, но у нас тут принято на "ты"... Таки вот мы, блин, демократичные  Отлично
« Последнее редактирование: 28-11-2007 16:35 от Алексей1153++ » Записан

не умеете летать- не мучайте метлу!
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #40 : 25-08-2004 19:48 » 

Never, я не спициально я так почему-то вопрос понял Улыбаюсь Можешь ответ в урок включить  Ага
Записан

Странно всё это....
Never
Команда клуба

ua
Offline Offline
Пол: Женский

« Ответ #41 : 26-08-2004 12:06 » 

LogRus, обязательно, когда доползу до перегрузки Отлично
Записан

не умеете летать- не мучайте метлу!
Гром
Птычк. Тьфу, птычник... Вот!
Готовлюсь к пенсии

il
Offline Offline
Пол: Мужской
Бодрый птах


« Ответ #42 : 26-08-2004 16:39 » 

KerLaede, я бы тебе советовал не спешить....
Кстати Never, вот и вопросик для отдельной статьи.
Записан

А птичку нашу прошу не обижать!!!
Jonny
Гость
« Ответ #43 : 26-08-2004 16:58 » new

Насчет "Внутренняя форма представления данных в компьютере и недесятичные системы счисления. Часть 4."
12. Фиксированная точка (запятая).
Указан недостаток "что для очень больших и очень маленьких чисел представление с фиксированной точкой неудобно. "
Но дискретность представляемых значений тоже значительный недостаток.
Правильно ли я понял?
И есть ли не позиционные  системы счисления?
Записан
Страниц: 1 [2]  Все   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines