Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Написать программу, которая определяет, какая часть отрезка окрашен https://www.cyberforum.ru/ cpp-beginners/ thread1156003.html
Автомат проводит кистью по отрезку от точки A до точки B, а потом от точки C до точки D. Написать программу, которая определяет, какая часть отрезка окрашена.
C++ Заполнить матрицу ЛП, от правого верхнего угла по диагонали: влево - вниз
https://www.cyberforum.ru/attachments/243234d1363129946 не могу понять что у меня не правильно, помогите пожалуйста. #include <stdio.h> #include <conio.h> #include <iostream> int main() { setlocale(LC_ALL, "Russian"); int n, k, j, i; int *a= new int;
C++ Разделить старшие и младшие биты в переменной Объясните дураку работу с битовыми операциями... Есть у меня массив, где первый элемент это 32 младших бита, а второй - 32 старших unsigned int sp = {0x11111111, 0x22222222}; Теперь мне это нужно записать в переменную, делаю вот так long long var = (sp << 32) | (sp << 32); Далее провожу операции над этой переменной, а затем мне заново нужно разделить старшие и младшие биты. Пытаюсь сделать... https://www.cyberforum.ru/ cpp-beginners/ thread1156000.html C++ Переписать программу с паскаля на Си++ https://www.cyberforum.ru/ cpp-beginners/ thread1155981.html
Нужно переписать программу с паскаля на си ++. а то у меня не получается... uses crt; label l1,l2,l3,l4,l5; type osa=record x:integer; Y:integer; life:integer; baby:integer; xp:integer; Yp:integer; end;
C++ Создать динамический список, поменять местами последний и первый элементы списка, предпоследний и второй и т.д.
Всем привет. Подкиньте идею, весь мозг сломал. Задание:Создать динамический список. Поменять местами последний и первый элементы списка, предпоследний и второй и т. д.. Список создал, даже местами поменял, но поменял только заново инициализированный(созданный из массива) список, а как поменять местами заранее созданный список (добавленные, удаленные элементы) никак не соображу. Понимаю, что нужно...
C++ Удалить из строки все пробелы, расположенные перед знаком препинания https://www.cyberforum.ru/ cpp-beginners/ thread1155945.html
Дана строка до точки, группа символов в которой между пробелами считается словом, знаки препинания от слова пробелом не отделяются. Удалить из строки все пробелы, расположенные перед знаком препинания.
C++ Криптография: расшифровать два послания Без труда справившись с образцом тайнописи старинной дипломатии – ПАЙЦИКЕ ТСЮГ Т "КАМАЩАМЛТОЙ ЧМАРОКЕ" – КАЙПОНИЛИ, НМИРЕПЯШВЕЙЛЯ Ш МОЛЛИИ ЦСЯ ЦИНСОРАКИГЕЛТОЙ НЕМЕНИЛТИ, попробуйте вскрыть более искусный шифр – ЫЛЧУВФНУЮЕГИХВФСЗИУЙГРЛИВХИНФХГ. https://www.cyberforum.ru/ cpp-beginners/ thread1155926.html C++ В алфавитном порядке расположить буквы из которых состоит текст с их количеством
Задание Составить алгоритм и программу обработки фразы (строки текста), находящемся в текстовом файле Inputtxt.txt. В результате работы программы в файле отчета необходимо в алфавитном порядке расположить буквы из которых состоит текст с их количеством. Пример: Содержание исходного файла Inputtxt.txt слово "МАМА" В результате работы программы получен файл следующего вида: Буква...
C++ Подсчитать количество предлогов - в, на, с и т.д. в тексте Помогите с задачей, нужно считать файл с тестом и в нем подсчитать сколько раз встречается каждый предлог, если кто то может, помогите на одном примере примере. Заранее спасибо) https://www.cyberforum.ru/ cpp-beginners/ thread1155870.html C++ Вычислить количество элементов массива X со значениями в интервале [A1, A2] и сформировать из них массив Y https://www.cyberforum.ru/ cpp-beginners/ thread1155869.html
Помогите пожалуйста решить, можно и с коментариями. Задан массив Х{xi} ( ). Вычислить количество элементов массива X со значениями в интервале и сформировать из них массив Y.
C++ QSort сортировка двумерного массива - нужен пример
Привет всем можете кинуть код данной сортировки и объясните пожалуйста
C++ Упорядочить элементы массива Z по убыванию https://www.cyberforum.ru/ cpp-beginners/ thread1155867.html
Помогите решить пожалуйста.Можно с коментариями, просто недавно начал учить. Задача Сгенерировать и вывести на экран одномерный массив X {xi} ( ) в диапазоне целых чисел . Сформировать массив Z из элементов массива X, которые принадлежат интервала -10< xi ≤. 30. Упорядочить элементы массива Z по убыванию.
4394 / 2244 / 252
Регистрация: 28.10.2011
Сообщений: 8,576
Записей в блоге: 6
0

Преобразование классов - C++ - Ответ 6081432

24.04.2014, 16:06. Показов 2679. Ответов 11
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Есть код для MS VS C++, который переписываю на другой ЯП и не совсем понимаю как преобразовываются объекты.
Интересующие части кода. Классы.
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
class IACTIVEMODEL
 { public:
      virtual VOID initialize (ICOMPONENT *cpt) = 0;
      virtual ISPICEMODEL *getspicemodel (CHAR *primitive) = 0;
      virtual IDSIMMODEL  *getdsimmodel (CHAR *primitive) = 0;
      virtual VOID plot (ACTIVESTATE state) = 0;
      virtual VOID animate (INT element, ACTIVEDATA *newstate) = 0;
      virtual BOOL actuate (WORD key, INT x, INT y, DWORD flags) = 0;
 };
 
class IDSIMMODEL
 { public:
      virtual INT  isdigital (CHAR *pinname) = 0;
      virtual VOID setup (IINSTANCE *instance, IDSIMCKT *dsim) = 0;
      virtual VOID runctrl (RUNMODES mode) = 0;
      virtual VOID actuate (REALTIME time, ACTIVESTATE newstate) = 0;
      virtual BOOL indicate (REALTIME time, ACTIVEDATA *newstate) = 0;
      virtual VOID simulate (ABSTIME time, DSIMMODES mode) = 0;
      virtual VOID callback (ABSTIME time, EVENTID eventid) = 0;
 };
 
class ISPICEMODEL
 { public:
      virtual INT  isanalog (CHAR *pinname) = 0;
      virtual VOID setup (IINSTANCE *, ISPICECKT *) = 0;
      virtual VOID runctrl (RUNMODES mode) = 0;
      virtual VOID actuate (REALTIME time, ACTIVESTATE newstate) = 0;
      virtual BOOL indicate (REALTIME time, ACTIVEDATA *newstate) = 0;
      virtual VOID dcload (REALTIME time, SPICEMODES mode, DOUBLE *oldrhs, DOUBLE *newrhs) = 0;
      virtual VOID acload (SPICEFREQ omega, DOUBLE *rhs, DOUBLE *irhs) = 0;
      virtual VOID trunc  (REALTIME time,  REALTIME *newtimestep) = 0;
      virtual VOID accept (REALTIME time, DOUBLE *rhs) = 0;
 };
 
class READOUTX : public IACTIVEMODEL, public IDSIMMODEL , public ISPICEMODEL
 {
    public:
      READOUTX (VOID);
      ~READOUTX (VOID);
      // Implementation of IACTIVEMODEL
      VOID initialize (ICOMPONENT *cpt);
      ISPICEMODEL *getspicemodel (CHAR *device);
      IDSIMMODEL *getdsimmodel (CHAR *device);
      VOID plot (ACTIVESTATE state);
      VOID animate (INT element, ACTIVEDATA *newstate);
      BOOL actuate (WORD key, INT x, INT y, DWORD flags);
 
      // IDSIMMODEL interface
            // Pin typing and connection functions:
      virtual INT isdigital (CHAR *pinname);
 
            // Common Functions:
      virtual VOID runctrl (RUNMODES mode);
      virtual VOID actuate (REALTIME time, ACTIVESTATE newstate);
      virtual BOOL indicate (REALTIME time, ACTIVEDATA *newstate);
            // Functions called by DSIM:
      VOID setup (IINSTANCE *, IDSIMCKT *dsim);
      VOID simulate (ABSTIME time, DSIMMODES mode);
      VOID callback (ABSTIME time, EVENTID eventid);
      ISIBLING *queryinterface (UINT iid);
 
      // ISPICEMODEL
      INT isanalog(CHAR *);
      VOID setup (IINSTANCE *, ISPICECKT *spice);
      VOID dcload(REALTIME, SPICEMODES, DOUBLE *, DOUBLE *);
      VOID acload(SPICEFREQ, DOUBLE *, DOUBLE *);
      VOID trunc(REALTIME, REALTIME *);
      VOID accept(REALTIME, DOUBLE *);
 
      VOID set_device(CHAR *s);
      VOID set_dprimitive(CHAR *s);     // primitive from DSIM
      VOID set_aprimitive(CHAR *s);     // primitive from SPICE
 
    private:
      ICOMPONENT *component;
      IINSTANCE *instance;
      IINSTANCE *ainstance;
      IDSIMCKT  *dsim;
      ISPICECKT *spice;
      IDEBUGPOPUP *idp;
      POINT textorg;
      HTEXTSTYLE textstyle;
      CHAR readout[10];
      CHAR device[32];
      CHAR dprimitive[32];
      CHAR aprimitive[32];
      CREATEPOPUPSTRUCT cps;
      DWORD i;
      IDSIMPIN  *pin_d0, *pin_d1, *pin_q;
      SPICENODE pin_plus, pin_minus;
      ACTIVEDATA adata;
 
      CHAR * EnumToString(INT element, ACTIVEDATA *data);
      CHAR * EnumToState(INT element, ACTIVEDATA *data);
      CHAR * EnumToRunCtrl(RUNMODES modes);
      CHAR * EnumToSmode(DSIMMODES smode);
      CHAR * DumpACTIVEDATA(INT element, ACTIVEDATA *data);
 
 };
Создание объекта.
C++
1
2
3
4
5
extern "C"  EXPORT IACTIVEMODEL *  createactivemodel (CHAR *device, ILICENCESERVER *ils)
 {
    READOUTX *model = new READOUTX();
    return (IACTIVEMODEL *) model;
 }
Преобразование объекта в другой.
C++
1
2
3
4
5
6
7
8
9
ISPICEMODEL *READOUTX::getspicemodel (CHAR *primitive)
{ 
    return (ISPICEMODEL *) this;
}
 
IDSIMMODEL *READOUTX::getdsimmodel (CHAR *primitive)
 {
    return (IDSIMMODEL *) this;
 }
В this находится тот указатель что был возвращен функцией createactivemodel(), но вот как он потом становится ISPICEMODEL или IDSIMMODEL?
Кстати, в createactivemodel() так же происходит преобразование в IACTIVEMODEL. Непонятно.

Как писал в начале, переписываю кода на другой ЯП и нужно знать как все это работает
Если просто передать this прога виснет или вылетает. Но если создать новый объект из ISPICEMODEL или IDSIMMODEL (в зависимости от функции), то все работает нормально. Как C++ преобразовывает один объект в другой?

Добавлено через 4 часа 50 минут
Никто не знает?

Вернуться к обсуждению:
Преобразование классов C++
0
Лучшие ответы (1)
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.04.2014, 16:06
Готовые ответы и решения:

Преобразование классов
Доброго Есть небольшая программулина. Вопрос: Почему нельзя использовать заккоментированые...

Преобразование пользовательских классов
у меня есть два класса: class Int; class Compl { float real; float...

Лафоре, преобразование классов
// times1.cpp // программа перевода времени в 24-часовом написании // в 12-часовое #include...

Преобразование классов одной иерархии
Всем привет. Допустим, есть следующая иерархия классов: class B { T data; }; class D1 :...

11
24.04.2014, 16:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.04.2014, 16:06
Помогаю со студенческими работами здесь

Разработать иерархию классов, демонстрирующее работу с коллекцией объектов разных классов
Задание: Разработать в соответствии с индивидуальным заданием иерархию классов и приложение,...

Автоматическая генерация классов С ++ с UML диаграмм классов. Наследование в с++. Абстрактные классы. WhiteStarUML
Создать классовую модель(желательно в WhiteStarUML), которая включает в себя абстрактный класс...

Вынести методы из классов Panel и PictureBox (явная реализация методов базовых абстрактных классов)
Тема: Множественное наследование. Явная реализация методов базовых абстрактных классов. Как...

Объекты классов не видны во вложенной функции одной из классов
Такая вот проблема. Есть функция play() класса Game, где создаются объекты классов Game, Character,...

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