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

Привести указатель на класс к указателю на void - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Узнать запущена ли программа http://www.cyberforum.ru/cpp-beginners/thread1550154.html
Нужно узнать, запущен ли какой нибудь процесс. В интернете нашёл вот такой код, но у меня он не работает: bool isProcessRun( const char * const processName ) { HANDLE hSnapshot = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 ); PROCESSENTRY32 pe; pe.dwSize = sizeof( PROCESSENTRY32 ); Process32First( hSnapshot, &pe ); while( 1 ) {
C++ Реализация своей функции getline Здравствуйте! Не могу решить задачку. Постановка: Реализуйте функцию getline, которая считывает поток ввода посимвольно, пока не достигнет конца потока или не встретит символ переноса строки ('\n'), и возвращает C-style строку с прочитанными символами. Обратите внимание, что так как размер ввода заранее неизвестен, то вам нужно будет перевыделять память в процессе чтения, если в потоке... http://www.cyberforum.ru/cpp-beginners/thread1550142.html
Массив: Напечатайте номера предметов, по которым имеются нулевые оценки. C++
Дана матрица А, имеющая 30 строк и 10 столбцов, содержащая оценки группы за 1-ый семестр.Напечатайте номера предметов, по которым имеются нулевые оценки.
C++ Составить блок-схемы, написать программы на языке С++ для вычисления значений f(x)
Составить блок-схемы, написать программы на языке С++ для вычисления значений f(x). Значение аргумента х вводить с клавиатуры. В задание использовать цикл с предусловием.
C++ Дана «мишень» в виде закрашенной области, изображенной на рисунке. Создать алгоритм для определения попадания http://www.cyberforum.ru/cpp-beginners/thread1550125.html
Всем доброго времени суток, форумчане! Задача такова: дана «мишень» в виде закрашенной области, изображенной на рисунке. Создать алгоритм для определения попадания точки с координатами (x, y) в мишень. С определением полукруга разобрался, нареканий нет, а вот ниже оси Ох... В-общем, проблемы. Помогите, пожалуйста.
C++ Ошибка "Нарушение прав доступа при записи" Похоже я полный неудачник по программированию, так как даже элементарные программы у меня отказываются работать с выводом ошибки "Нарушение прав доступа при записи"... Пользуюсь VS 2010 С правами администратора. Не знаю что такого я могу сделать, но раньше всё работало... #include <stdio.h> #include <windows.h> void main() { int q = 1; printf("one more?"); scanf("%i", q); подробнее

Показать сообщение отдельно
SanychBY
 Аватар для SanychBY
38 / 45 / 1
Регистрация: 04.06.2013
Сообщений: 1,532
12.10.2015, 14:12  [ТС]     Привести указатель на класс к указателю на void
Цитата Сообщение от nmcf Посмотреть сообщение
Почему тип элемента списка не сделать указателем на Rose? Зачем там void?
Хочется создать что-то на подобии библиотеки. void позволяет не привязываться к типу данных.

Добавлено через 8 минут
Вот класс Rose
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#pragma once
#include "Flower.h";
#include "Packing.h"
class Rose :public Flower
{
public:
    Rose()
    {
        cout << "Constructor Rose" << endl;
    }
    ~Rose()
    {
        cout << "Destr Rose" << endl;
    }
    Packing Pack;
};
вот list
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
#pragma once
#include <iostream>
 
 
class list
{
 
public:
    list(list *n, list *p, void *d);
    ~list();
    
    list *next;
    list *prev;
    void *data;
    void Set(list *n, list *p, void *d);
    void* Get();
    
private:
 
};
static list *Header = NULL;
static list *Last = NULL;
 
list::list(list *n, list *p, void *d)
{
    this->Set(n, p, d);
}
 
list::~list()
{
    delete data;
}
 
void list::Set(list *n, list *p, void *d)
{
    this->next = n;
    this->prev = p;
    this->data = d;
}
void * list::Get()
{
    return this->data;
}
Добавлено через 2 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
template <typename Ppr,typename Pdata>
    void PrintAll()
    {
        MyPrint *PointPrint;
        PointPrint = new Ppr;
        list *t = Header;
        while (t)
        {
            PointPrint->Pr((Pdata&)t->data);//необходимо преобразовать void * в Rose;
        }
    }
как то надо просто прописать правильное преобразование
 
Текущее время: 11:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru