290 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12
1

Указатель и его неопределённый тип

15.12.2012, 17:36. Показов 707. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
C++
1
2
3
4
5
struct SAI_BuMa
{
    int number_BuMa;
    int counter_BuMa;
};
C++
1
2
3
AI[i].style[j].pointer[t] = new SAI_BuMa;
                    IF_data_AI >> tmp;
                    static_cast <SAI_BuMa*> (&AI[i].style[j].pointer[t]->number_BuMa) = tmp; // вот тут ошибка что делать
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.12.2012, 17:36
Ответы с готовыми решениями:

Указатель на неопределенный тип
Можете привести пример простой программы с этим указателем void* p; Я что-то не могу придумать с...

Указатель на неопределённый тип
Есть, допустим, у меня вот такой класс: public ref class MyClass { public int info; ......

Неопределённый тип
Добрый вечер! Вопрос такой: делаю программу. Необходимо реализовать класс List, имитирующий...

Неопределенный пользователем тип
Подскажите, пож., как решить такую проблему? Прорамма пишет, что Dim dbs As Database - тип, не...

8
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
15.12.2012, 17:39 2
Хотите переменной number_BuMa присвоить значение tmp? Кастуйте tmp к int, если его тип отличен от int
0
290 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12
15.12.2012, 17:45  [ТС] 3
вот сделал такой изворот, но хочется без левых переменных обходится
C++
1
2
3
4
5
6
7
AI[i].style[j].pointer[t] = new SAI_BuMa;
                    SAI_BuMa * pointer_SAI_BuMa;
                    pointer_SAI_BuMa = static_cast <SAI_BuMa*> (AI[i].style[j].pointer[t]);
                    IF_data_AI >> tmp;
                    tpointer_SAI_BuMa->counter_BuMa = tmp;
                    IF_data_AI >> tmp;
                    pointer_SAI_BuMa->number_BuMa = tmp;
0
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
15.12.2012, 17:47 4
C++
1
2
AI[i].style[j].pointer[t] = new SAI_BuMa;
IF_data >> AI[i].style[j].pointer[t] -> counter_BuMa >> pointer_SAI_BuMa -> number_BuMa;
1
290 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12
15.12.2012, 17:48  [ТС] 5
Цитата Сообщение от soon Посмотреть сообщение
Хотите переменной number_BuMa присвоить значение tmp? Кастуйте tmp к int, если его тип отличен от int
не в tmp дело, дело в том что без ввода лишней переменной не получается объеснить компилятору
что pointer, тип которого void * в данном случаи имеет тип SAI_BuMa *

Добавлено через 59 секунд
C++
1
2
3
4
5
struct SAI_command
{
    vector <void *> pointer;
    vector <ECommand> command;
};
0
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
15.12.2012, 17:50 6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
struct Foo
{
    int foo;
};
 
int main()
{
    void* ptr_void;
    ptr_void = new Foo;
 
    std::cin >> static_cast<Foo*>(ptr_void) -> foo;
    std::cout << static_cast<Foo*>(ptr_void) -> foo << std::endl;
 
    delete static_cast<Foo*>(ptr_void);
 
    return 0;
}
2
290 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12
16.12.2012, 13:16  [ТС] 7
извените что тратили на меня время, вот такая строка нужны была
C++
1
    static_cast <SAI_BuMa*> (AI[i].style[j].pointer[t])->counter_BuMa=tmp;
Добавлено через 6 минут
soon, большое спасибо

Добавлено через 2 часа 11 минут
C++
1
2
3
4
5
6
7
struct SAI_style
{
    vector <SAI_command> building_layer;
    int current_command;
    int current_layer;
    int chance;
};
C++
1
    vector < SAI_style> *AI_style = static_cast <vector  <SAI_style> *> (static_cast<void*> (&AI[state_kingdom]));
C++
1
AI_style[0]->
дальше почемуто высвечиваются операции доступные над вектором а не члены SAI_style ,что делать?
0
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
16.12.2012, 13:50 8
Цитата Сообщение от Van111 Посмотреть сообщение
дальше почемуто высвечиваются операции доступные над вектором а не члены SAI_style ,что делать?
C++
1
(*AI_style)[0].
1
290 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12
16.12.2012, 14:38  [ТС] 9
вопрос решён, надо было использовать итератор
C++
1
vector < SAI_style> ::iterator AI_style =  (AI.begin() + state_kingdom);
0
16.12.2012, 14:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.12.2012, 14:38
Помогаю со студенческими работами здесь

Ссылочный тип (тип указатель)
Такая проблема. Дали лабораторную работу на эту тему, однако как обычно ничего не объяснили....

Неопределенный тип переменной в структуре
Есть некоторая структура в одной переменной которой необходимо хранить переменные разных типов...

Заполнение массива структур через неопределённый тип void*
Не удаётся заполнить значениями структуру состоящую из 4 элементов, выходит ошибка нарушение прав...

Тип указатель
Нам дали программу,задание: объяснить для чего она нужна. Программа не работает, в первой же строке...


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

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

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