Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на C / C++

Выпуск № 161
от 31.12.2002, 16:50

Администратор:
Имя: Nick.Box
URL: Информационный ресурс
ICQ: 365124
[censored], [censored]
О рассылке:
Задано вопросов: 476
Отправлено ответов: 1051
Активность: 220.7 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Avl2k
Статус: Опытный
Общий рейтинг: 128.93
[Подробней >>]
Yuri Gordienko
Статус: Опытный
Общий рейтинг: 116.88
[Подробней >>]
Ramzes
Статус: Начальный
Общий рейтинг: 133.33
[Подробней >>]
 
Jadd
Статус: Профессиональный
Общий рейтинг: 145
[Подробней >>]
Dzik
Статус: Профессиональный
Общий рейтинг: 114.91
URL: Разработка игрушек
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 467. Здравствуйте эксперты, подскажите есть ли функция для преобразования кода unsigned char в символьный... (ответов: 5)
Вопрос № 469. Доброго времени суток, Jadd Не могли бы вы мне скинуть электронную версию книги Джеффри Рихтера &quo... (ответов: 1)

Вопросов: 2, ответов: 6


 Вопрос № 467

Здравствуйте эксперты, подскажите есть ли функция для преобразования кода unsigned char в символьный вид и тоже самое для int (sizeof(int) = 2), в смысле библиотечные, свои я уже наваял.
И еще одна проблема, которая поважнее будет:
class A
{
public:
void Add(const A *);
protected:
FILE *OpenFile();
uchar Value1;
private:
void GetFileName(char *Buf);
};
void GetFileName(char *Buf)
{
код преобразует Value1 в строку и складывает результат в буфер
}

class B:public A
{
public:
void Add(const B *);
private:
int Value2;
void GetFileName(char *Buf);
}
void GetFileName(char *Buf)
{
тоже самое, что и у класса A, только для int
}
void Add(const B *v)
{
A::Add(v);
Value2 = v.Value2;
...
}
OpenFile() использует метод GetFileName чтобы выполнить свою работу, OpenFile в свою очередь вызывается из метода A::Add. Проблема в том что в методе B::Add() приходится писать A::Add(v) иначе начинается рекурсия, причем OpenFile() вызывается унаследованный и GetFileName() соответсвенно тоже хотя он и стоит в private, можно как нибудь обойти эти грабли, чтобы OpenFile() вызывался унаследованный, а GetFileName()
переопределенный.
Компилятор bc300 (dos)
Спасибо.



Вопрос отправлен: 28.12.2002, 03:50
Отправитель: Serzhant (Serzhant_mail@mail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Avl2k

Добрый день, Serzhant!
1. если нужно преобразовать число в символьный вид, то можно использовать itoa, ltoa или utoa, а также printf.
2. сделайте GetFileName protected и напишите перед ним слово virtual.
С уважением, Avl2k.

Ответ отправлен: 28.12.2002, 10:56
Отправитель: Avl2k


Отвечает Yuri Gordienko

Добрый день, Serzhant!
Во-первых, это не грабли, а разумное поведение. Во-вторых, объявляй функции виртуальными.

Ответ отправлен: 28.12.2002, 10:29
Отправитель: Yuri Gordienko


Отвечает Ramzes

Здравствуйте, Serzhant!
Объяви функцию GetFileName виртуалъной

Приложение:

Ответ отправлен: 28.12.2002, 10:35
Отправитель: Ramzes


Отвечает Jadd

Добрый день, Serzhant!
Есть такой механизм - полиморфизмом зовется. Слыхал о таком? Так вот можно его тут и применить.

Ответ отправлен: 28.12.2002, 04:05
Отправитель: Jadd


Отвечает Dzik

Доброе время суток, Serzhant!
Про перевод из символов в цифры и обратно см.
itoa,atoi,ltoa и т.д.


Ответ отправлен: 28.12.2002, 14:05
Отправитель: Dzik


 Вопрос № 469

Доброго времени суток, Jadd
Не могли бы вы мне скинуть электронную версию книги Джеффри Рихтера "Windows для профессионалов".
Заранее спасибо.



Вопрос отправлен: 28.12.2002, 09:56
Отправитель: Gibbel (Gibbel@narod.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Jadd

Доброе время суток, Gibbel!
Уфф...Могу на сегодняшний момент только на аглицком. Устроит? Нет проблем. Если надо на русском, то подождитедо середины неделии я скину.

Ответ отправлен: 29.12.2002, 01:10
Отправитель: Jadd



Форма отправки вопроса

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (39)
C / C++ (28)
Perl (5)
Delphi (21)
Pascal (22)
Basic / VBA (11)
Java / JavaScript (7)
PHP (4)
MySQL / MSSQL (5)
Пользователю
Windows 95/98/Me (33)
Windows NT/2000/XP (26)
"Железо" (30)
Поиск информации (14)
Администратору
Windows NT/2000/XP (11)
Linux / Unix (14)
Юристу
Гражданское право (6)
Семейное право (3)
Трудовое право (3)
КоАП (2)

Отправить вопрос всем экспертам выбранной рассылки.




Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное