Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

присвоение typeid - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Составить программы на строки для DevC++ http://www.cyberforum.ru/cpp-beginners/thread405840.html
1. Составить программу, которая по данной символьной строке формирует числовой массив, содержащий коды символов, составляющих строку. 2. Программа определяющая тождественность 2-ух введенных с...
C++ Вычисление суммы конечного ряда 1) Задача: Вычислить сумму конечного ряда сумма:k от 1 до 10 функция (-1)^k / k! 2) Дана последовательность чисел аi (i=1, 2, …, N). Подсчитать количество чисел, значение которых равно E +-... http://www.cyberforum.ru/cpp-beginners/thread405808.html
Не могу найти ошибку. Массивы. C++
Есть задание: Найти номер первого максимального значения среди элементов, меньших Т и расположенных правее первого элемента, кратного 3. double ALGO2(int T, int SIZE, double *ARR){ int i=0; int...
C++ CryptoApi Шифрование XML упаковка симметричного ключа Рекомендация http://www.w3.org/2001/04/xmlenc#
Добрый вечер. Нужно зашифровать часть xml следую регламенту. Использовать CryptoApi алгоритм шифрования Гост 28147-89. Использовал пример крипто про для шифрования (...
C++ почему link выдает ошибку? http://www.cyberforum.ru/cpp-beginners/thread405773.html
Добрый вечер. Программа компилируется,но линк выдает ошибку... что в программе не так? #include <iostream> #include <fstream> #include <string> #include <cmath> #include <iomanip> using...
C++ Помогите с процедурой для программы. Помогите пожалуйста сделать так, чтобы процедура возвращала в основную программу результат c и код ошибки k. Нужно решить выражение с 2мя переменными. #include <math.h> #include <stdio.h>... подробнее

Показать сообщение отдельно
Bers
Заблокирован
13.12.2011, 00:28
Цитата Сообщение от Night_VoLK Посмотреть сообщение
Есть ли возможность насильственного изменения typeid(или класса объекта) чтоб выдавал, что эта переменная принадлежит другому классу??
Если нужно подменить интерпретацию объекта, то можно сделать так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
 
class Test{ int a;};
class Test1{ int a;};
 
int main(int argc, char *argv[])
{
    Test crolic;
    std::cout<< typeid(crolic).name()<<"\n"; //вывод: Test
    std::cout<< typeid( *((Test1*) ((void*)&crolic)) ).name()<<"\n"; //вывод: Test1
    return 0;
}
Если нужно, что бы реально рантайм-идентификация выдавала ложную информацию, то... это уже на первое место тянет в конкурсе приплюснутых извращенцев
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru