Вниз  C / C++
- 19.04.2015 / 21:40
Naik
  Пользователь

Naik 
Сейчас: Offline
:gg:
Сплошная непонятность а не язык
Если раскоментировать //cell.summa.size(); то при вызове оператора << просто ничего не происходит
Открыть спойлер

Т.е. любое обращение к переменным обьекта и оператор перестает работать

Изменено Naik (19.04 / 21:45) (всего 1 раз)
- 19.04.2015 / 22:31
Banschey
  Пользователь

Banschey 
Сейчас: Offline
Naik, Попробуй так
  1. #include <fstream>
  2. ifstream file;
  3. file.open("path")
  4. // а так работает // это скорей всего конструктор по у молчанию ты вызвал  
  5. ifstream file("path");
если я не ошибаюсь то расширение у файла должно быть, или нет ?
- 19.04.2015 / 22:39
Ксакеп
  Модератор форума

Ксакеп 
Сейчас: Offline
Naik, на твой пост (#412577) отвечу, ты думаешь на Java. Но C++ другой.
  1. String s = new String("Oka");
  2. System.out.println(s.empty());

Ты можешь думать на Java, если будешь использовать указатели:
  1. // using std::string;
  2.  
  3. string * s = new string("Ksa");  // new возвращает адрес объекта в памяти
  4. cout << s->empty();              // или size()

То, что ты хочешь написать, это объекты на стеке:
  1. string s("friends");  // конструктор
  2. s.empty();

- 20.04.2015 / 23:00
Banschey
  Пользователь

Banschey 
Сейчас: Offline
  1. void collision(vector<Object> &object);///Это метод класса.Object это структура.
  2. vector<Object> obcet;//Это инициализация в мейне.
Нужно передать силку на него в класс и там с ним уже работать, но выдает ошибку:
Ошибка 17 error C2061: синтаксическая ошибка: идентификатор "vector" .
Без <vector> пишет туже ошибку но толкo уже про Object;
В чем может быть проблема ?
- 20.04.2015 / 23:38
Ксакеп
  Модератор форума

Ксакеп 
Сейчас: Offline
Banschey, #include <vector> и using std::vector есть?
- 21.04.2015 / 01:18
Banschey
  Пользователь

Banschey 
Сейчас: Offline
Ксакеп, да
Структура Object Реализована в отдельном Заголовек .h
  1.  struct Object
  2. {
  3.     int GetPropertyInt(std::string name);
  4.     float GetPropertyFloat(std::string name);
  5.     std::string GetPropertyString(std::string name);
  6.  
  7.     std::string name;
  8.     std::string type;
  9.     sf::Rect<float> rect;
  10.     std::map<std::string, std::string> properties;
  11.  
  12.     sf::Sprite sprite;
  13. };


Изменено Banschey (21.04 / 01:29) (всего 1 раз)
- 21.04.2015 / 01:42
Banschey
  Пользователь

Banschey 
Сейчас: Offline
Исходник не мой но суть всего в том что : Есть тайл карты tmx, с помощью TyniXml он парситсья
и рисуется карта. <vector>Object забирает все объекты с карты не картинки. Потом в цикле пробегаюсь по нему и сравниваю внутри цикла мой объект и обьект который лежит в <vector>Object и смотрю (Player.getRect().intersects(obj[i].rect) если они пересеклись выполнить те или иные действия. Это работает в мейне, но объектов для сравнения может быть 20 яж не буду их все в мейне, поэтому хочу вставить его класс моего объекта

Полный пример
  1. for (int i = 0; i<obj.size(); i++)
  2.             if (Player.getRect().intersects(obj[i].rect))
  3.             {
  4.                 if (obj[i].name == "solid")
  5.                 {
  6.                     if (dy > 0){ Player.move(0, 0 - speed* frameTime.asSeconds()); }
  7.  
  8.                     if (dy < 0){ Player.move(0, 0 + speed* frameTime.asSeconds()); }
  9.  
  10.                     if (dx > 0){ Player.move(0 - speed* frameTime.asSeconds(), 0); }
  11.  
  12.                     if (dx < 0){ Player.move(0 + speed* frameTime.asSeconds(), 0); }
  13.                 }
  14. }

Player.getRect()-возвращает позицию по х, по y, длину и ширину
obj тот самый <vector>Object

Изменено Banschey (21.04 / 01:48) (всего 2 раза)
- 21.04.2015 / 07:13
Ксакеп
  Модератор форума

Ксакеп 
Сейчас: Offline
Banschey, не, ты что-то не то скинул. Нужна строчка на которой появляется ошибка, и соответственно всё тело метода, или даже весь класс. В C++ трудно угадывать по одной строке поведение компилятора.
- 21.04.2015 / 11:02
Banschey
  Пользователь

Banschey 
Сейчас: Offline
Открыть спойлер

Подключил хедер внутри своего класса и выдает новую порцию :-(
Наверно нужно все пере-собрать.

Изменено Banschey (21.04 / 11:03) (всего 1 раз)
- 21.04.2015 / 13:06
Ксакеп
  Модератор форума

Ксакеп 
Сейчас: Offline
Banschey, лол, ну и зачем? Содержимое того заголовочного файла тупо копируется внутрь класса, естественно у тебя там жесть будет.
Наверх  Всего сообщений: 2777
Фильтровать сообщения
Поиск по теме
Файлы топика (111)