4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
1

Информация о типе

06.05.2010, 06:55. Показов 1266. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть ли в сях возможность прочитать класс объекта в строку, заканчивающуюся нулём? Известно, что базовый класс имеет виртуальные члены. Не известно, является ли фактический класс базовым. Перегрузка для этой цели специальных членов не желательна.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.05.2010, 06:55
Ответы с готовыми решениями:

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

Где храниться информация о типе переменной ссылочнного типа?
Например students здесь: List students = new ArrayList(); Где храниться информация что это...

Ошибка в типе.
var n,x,i:integer; z:arrayof integer; a,b:file of integer; sr:real; begin assign(a,'путь к...

ошибка в типе
привет всем. помогите исправить ошибку... не понимаю. на delphi 2010 - не ругается, а на...

5
332 / 247 / 32
Регистрация: 13.12.2009
Сообщений: 589
06.05.2010, 09:18 2
Лучший ответ Сообщение было отмечено как решение

Решение

C++
1
2
3
4
5
6
int main()
{
    MyClass p;
    cout << typeid(MyClass).name() << endl;
    return 0;
}
?
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
06.05.2010, 09:34  [ТС] 3
Спасибо, но мне именно в sz, а не в поток. Если переписать так:
C++
1
2
3
MyClass *p=&o;
char *c;
c=typeid(MyClass).name(&p);
то будет ли в c та самая строка?

Добавлено через 2 минуты
Если p указывает на объект базового класса MyClass? А если на объект производного производный от него класса? На объект дальнего потомка?
0
Эксперт С++
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
06.05.2010, 10:35 4
Цитата Сообщение от taras atavin Посмотреть сообщение
Известно, что базовый класс имеет виртуальные члены. Не известно, является ли фактический класс базовым. Перегрузка для этой цели специальных членов не желательна.
В соответствии с принципом подстановки Лисков (LSP), любой объект производного класса "является" одновременно и объектом базового класса и может без ограничений использоваться во всех случаях, когда требуется объект (или, чаще, указатель на объект) базового класса.
0
332 / 247 / 32
Регистрация: 13.12.2009
Сообщений: 589
06.05.2010, 21:39 5
Цитата Сообщение от Roma_F Посмотреть сообщение
cout << typeid(MyClass).name() << endl;
утром торопился

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
class AClass
{
    public:
        virtual ~AClass() {};
};
 
class BClass : AClass
{
    public:
        ~BClass() {};
};
 
int main()
{
    AClass a;
    BClass b;
    AClass *a_ptr = new AClass();
    BClass *b_ptr = new BClass();
 
    const char *ca = typeid(a).name();
    const char *cb = typeid(b).name();
    const char *ca_ptr = typeid(a_ptr).name();
    const char *cb_ptr = typeid(b_ptr).name();
    cout << ca << endl;
    cout << cb << endl;
    cout << ca_ptr << endl;
    cout << cb_ptr << endl;
 
    delete a_ptr;
    delete b_ptr;
    return 0;
}
 
--------- output ---------
6AClass
6BClass
P6AClass
P6BClass
------------------
1
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
07.05.2010, 05:15  [ТС] 6
Цитата Сообщение от CheshireCat Посмотреть сообщение
В соответствии с принципом подстановки Лисков (LSP), любой объект производного класса "является" одновременно и объектом базового класса и может без ограничений использоваться во всех случаях, когда требуется объект (или, чаще, указатель на объект) базового класса.
. Это мне известно. Но обратное не верно: указатель на базовый класс нельзя использовать вместо производного. Потомок же может иметь методы, которых базовый класс не имеет. Тогда информация о фактическом типе могла бы быть использована для того, чтоб решить, можно ли вызывать дополнительные методы. Но в данном случае она нужна и не для этого. Нужна имено sz с именем фактического класса.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.05.2010, 05:15
Помогаю со студенческими работами здесь

Null в обобщенном типе
Здравствуйте, подскажите как вернуть null во втором перегруженном методе Get (50 строка) using...

Заковырка в типе данных
Имеется простенькая функция: void dbrun(char *buffer){ printf(&quot;hi %s&quot;,buffer); if...

Можно ли избавится от Maybe в типе?
есть пользовательский тип product , есть первая функция которая возвращает maybe produkt и вторая...

Получить информацию о типе
Собственно есть тип export type size = 'min' | 'small' | 'normal' | 'large' | 'giant' | 'max'; И...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru