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

Как на основе того что лежит в переменной сделать переменную в объекте? - C++

Восстановить пароль Регистрация
 
 
Валеркуй
 Аватар для Валеркуй
2 / 2 / 0
Регистрация: 17.06.2013
Сообщений: 120
23.08.2014, 20:13     Как на основе того что лежит в переменной сделать переменную в объекте? #1
1. Ну есть у нас переменная
C++
1
2
string arg1 = "MyVar";
string arg2 = "propereties";
и потом можно было обратится через объект
C++
1
cout << object.MyVar; //отобразит propereties
2. Но может такое быть что эти значения лежат еще в одном контейнере, и тогда
C++
1
string container[] = "{name:valera, x:100, y:100}","{name: vova, x:110, y:70}";//это чисто приблизительно
и потом можно было бы получить значения с помощью
C++
1
 cout << object.container[0].name; //вернет valera
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.08.2014, 20:13     Как на основе того что лежит в переменной сделать переменную в объекте?
Посмотрите здесь:

C++ как записать в переменную символьного типа (думерный массив) несколько строк, после инициализации этой переменной?
Как в переменную записать текст, а затем в конце добавить значение переменной? C++
создал метод класса в основе которо лежит itoa C++
Где, относительно какой переменной, лежит Х C++
C++ Обязательно ли объявлять переменную для хранения адреса переменной как указатель?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Валеркуй
 Аватар для Валеркуй
2 / 2 / 0
Регистрация: 17.06.2013
Сообщений: 120
27.08.2014, 14:58  [ТС]     Как на основе того что лежит в переменной сделать переменную в объекте? #21
Спасибо конечно) Я перед тем как вы написали сообщение открыл еще один метод! Но ваш лучше...
C++
1
2
3
4
        for(int i=0; i < map.size(); ++i){
            cout << map[i].get("x", "no-x") << endl;
            cout << map[i].get("y", "no-y") << endl;
        }
Добавлено через 20 часов 34 минуты
Цитата Сообщение от Валеркуй Посмотреть сообщение
Есть конкретные вопросы - задавайте, при условии что ответов на них нет в официальной документации.
Опять привет!!! Есть такой случай, все собирается компилится все отлично, но!
Когда я подключаю еще одну библиотеку для графики она выдает ошибку если поменять менять Mtd
А если ее не менять тогда выдает ошибку json. Что делать

Добавлено через 13 минут
Цитата Сообщение от 0x10 Посмотреть сообщение
http://jsoncpp.sourceforge.net/class...1_1_value.html
Что делать-то? Или можно как отдельную dll скомпилировать, а потом подключить как-то???
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
0x10
2426 / 1598 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
27.08.2014, 15:54     Как на основе того что лежит в переменной сделать переменную в объекте? #22
Цитата Сообщение от Валеркуй Посмотреть сообщение
Что делать-то?
Пройтись по всем солюшнам и проставить значение опции (см пост 17) одинаковым.
Валеркуй
 Аватар для Валеркуй
2 / 2 / 0
Регистрация: 17.06.2013
Сообщений: 120
27.08.2014, 16:07  [ТС]     Как на основе того что лежит в переменной сделать переменную в объекте? #23
Цитата Сообщение от 0x10 Посмотреть сообщение
солюшнам
Вот сейчас вообще непонятно!!! Когда я подключаю jsoncpp то захожу в свойства проэкта и там делаю многопоточность без dll. А Если я ее включаю тогда другая либа не работает!!! потому что ей нужно с dll!
0x10
2426 / 1598 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
27.08.2014, 16:10     Как на основе того что лежит в переменной сделать переменную в объекте? #24
Цитата Сообщение от Валеркуй Посмотреть сообщение
Вот сейчас вообще непонятно!!! Когда я подключаю jsoncpp то захожу в свойства проэкта и там делаю многопоточность без dll. А Если я ее включаю тогда другая либа не работает!!! потому что ей нужно с dll!
Либо третью либо пересобрать со статическим рантаймом, либо пересборать jsoncpp и приложение с dll.
Валеркуй
 Аватар для Валеркуй
2 / 2 / 0
Регистрация: 17.06.2013
Сообщений: 120
27.08.2014, 16:35  [ТС]     Как на основе того что лежит в переменной сделать переменную в объекте? #25
Я пересобрал jsonspp но там Mtd поменял на MDd собралось вроде и работает! Чтоб я без тебя делал
Возьми в падаваны

Добавлено через 7 минут
Теперь всместе тестил РАБОТААЕТ!!!
Валеркуй
 Аватар для Валеркуй
2 / 2 / 0
Регистрация: 17.06.2013
Сообщений: 120
06.09.2014, 18:41  [ТС]     Как на основе того что лежит в переменной сделать переменную в объекте? #26
Цитата Сообщение от 0x10 Посмотреть сообщение
Есть конкретные вопросы - задавайте
Привет! Ну я опять к тебе!!! Есть такой класс:
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
/*uploader_lvl*/
#include <iostream>
#include <json/json.h>
#include <string>
#include "parser.h"
using namespace std;
 
class Map{
public:
    struct Object_map{
        int x,
            y,
            _W,
            _H,
            rect_x,
            rect_y;
    };
 
    Object_map object_map[200];//количество игровых объектов
 
    void import_file(){
        TreeParser pars;
        string str = pars._get_file_to_string("c:/map1.json");
 
        Json::Value root;   // will contains the root value after parsing.
        Json::Reader reader;
        bool parsingSuccessful = reader.parse(str,root);
        if ( !parsingSuccessful )
        {
            // report to the user the failure and their locations in the document.
            std::cout  << "Failed to parse configuration\n"
                       << reader.getFormattedErrorMessages();
        }
            const Json::Value map_obj = root["map"];//считываем объекты
 
        for(int i=0; i < map_obj.size(); i++){
 
            object_map[i].rect_x = map_obj[i].get("rect_x", "0").asInt();
            object_map[i].rect_y = map_obj[i].get("rect_y", "0").asInt();
            object_map[i]._W = map_obj[i].get("_W", "0").asInt();
            object_map[i]._H = map_obj[i].get("_H", "0").asInt();
            object_map[i].x = map_obj[i].get("x", "0").asInt();
            object_map[i].y = map_obj[i].get("y", "0").asInt();
        }
    }
};
В маине:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include "uploader_lvl.h"
 
using namespace std;
 
int main(){
 
    Map map;
    map.import_file();
    cout << "Parsing complente!"<<endl;
    system("pause");
    return 0;
}
После того как все компилиться прогамма в дебаг режиме начинает много-много матюкаться:

Необработанное исключение в "0x770770f4" в "boost_parser.exe": 0xC0000005: Access violation.

и стрелочкой (зеленой) указывает на безобидную строку:
C++
1
    cout << "Parsing complente!"<<endl;
0x10
2426 / 1598 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
06.09.2014, 18:55     Как на основе того что лежит в переменной сделать переменную в объекте? #27
Выглядит как вылет за границы. Первое, что хочется проверить - соответствие размеров исходного массива и результирующего.
А так - ставить в отладчике точку останова в функции и смотреть по шагам.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.09.2014, 19:08     Как на основе того что лежит в переменной сделать переменную в объекте?
Еще ссылки по теме:

Верно ли, что в основе фабрики лежит наследование классов? C++
C++ Как сделать переменную строковой C++
Как сделать браузер на основе Chromium? C++

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

Или воспользуйтесь поиском по форуму:
Валеркуй
 Аватар для Валеркуй
2 / 2 / 0
Регистрация: 17.06.2013
Сообщений: 120
06.09.2014, 19:08  [ТС]     Как на основе того что лежит в переменной сделать переменную в объекте? #28
Цитата Сообщение от 0x10 Посмотреть сообщение
соответствие размеров исходного массива и результирующего
В общем не совсем понял что за точка остановки, но я попытался сначала увеличить
C++
1
Object_map object_map[200];
на 300, выдало тоже самое, потом на 500, ничего потом на 1000! Заработало!!!
Эх сделать бы динамический массив структур...

Добавлено через 5 минут
Ахаха, открыл сам json фалик и посчитал сколько там объектов, вышло 544 =) Что-то я в редакторе game maker
перестарался)))
Yandex
Объявления
06.09.2014, 19:08     Как на основе того что лежит в переменной сделать переменную в объекте?
Ответ Создать тему
Опции темы

Текущее время: 12:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru