Вопрос-Ответ (C++)
|
|
Kornival | Дата: Воскресенье, 04 Сентября 2011, 19:10 | Сообщение # 1 |
The Witcher
Сейчас нет на сайте
| Чтобы не создавать отдельную тему на каждый глупый вопрос, предлагаю задавать их здесь.
Saitei: все вопросы по С задаём в теме Вопрос-Ответ (С). Благодарю за внимание!
|
|
| |
GECK | Дата: Воскресенье, 01 Декабря 2013, 07:58 | Сообщение # 1101 |
заслуженный участник
Сейчас нет на сайте
| Цитата Labirintik ( ) почему этот код рисует только черный квадрат? Предположу самое простое - переменные random1, random2 и random3 объявлены как int?
Всё гениальное просто. И хреново работает.
|
|
| |
Labirintik | Дата: Воскресенье, 01 Декабря 2013, 08:21 | Сообщение # 1102 |
постоянный участник
Сейчас нет на сайте
| Цитата GECK ( ) Предположу самое простое - переменные random1, random2 и random3 объявлены как int? Проблема оказалось в другом, надо было вместо random1(2,3)/255 написать random1(2,3)/255.0f
|
|
| |
GECK | Дата: Воскресенье, 01 Декабря 2013, 08:30 | Сообщение # 1103 |
заслуженный участник
Сейчас нет на сайте
| Смысл один - надо помнить про тип операндов в выражениях
Всё гениальное просто. И хреново работает.
|
|
| |
Labirintik | Дата: Воскресенье, 01 Декабря 2013, 09:47 | Сообщение # 1104 |
постоянный участник
Сейчас нет на сайте
| Можно ли натянуть спрайт на двух мерный куб в opengl ?
|
|
| |
Izaron | Дата: Воскресенье, 01 Декабря 2013, 19:13 | Сообщение # 1105 |
Rammstein forever
Сейчас нет на сайте
| Да, грузим текстуру, накладываем ее на квадрат из 2 треугольников
|
|
| |
Labirintik | Дата: Понедельник, 02 Декабря 2013, 03:45 | Сообщение # 1106 |
постоянный участник
Сейчас нет на сайте
| Цитата Izaron ( ) Да, грузим текстуру, накладываем ее на квадрат из 2 треугольников как загрузить текстуры через GLUT, найти не могу , только AUX в инете есть
|
|
| |
nazar79 | Дата: Среда, 04 Декабря 2013, 21:20 | Сообщение # 1107 |
постоянный участник
Сейчас нет на сайте
| Народ помогите с открытием и записью txt. Никак не могу разобраться. Чтоб например в файле было записано 10, а прога открыла и считывала число
|
|
| |
Izaron | Дата: Среда, 04 Декабря 2013, 21:22 | Сообщение # 1108 |
Rammstein forever
Сейчас нет на сайте
| ifstream fin("file.txt"); int i; fin >> i;
|
|
| |
Deswing | Дата: Суббота, 14 Декабря 2013, 19:15 | Сообщение # 1109 |
заслуженный участник
Сейчас нет на сайте
| А как создать сразу много объектов? И как каждому дать id? Просто я вот игрушку пишу... Хочу, чтобы при нажатии на объект у него вызывался деструктор... НО КАК компьютер определит id объекта и вызовет именно ЕГО деструктор?
|
|
| |
OpenGOO | Дата: Воскресенье, 15 Декабря 2013, 00:46 | Сообщение # 1110 |
почти ветеран
Сейчас нет на сайте
| Цитата Deswing ( ) А как создать сразу много объектов? И как каждому дать id?
Код #include <iostream> #include <list> #include <algorithm>
using namespace std;
class Object { private: static int s_nIDGenerator; int m_nID;
public: Object() { m_nID = s_nIDGenerator++; }
int getID() const { return m_nID; } };
int Object::s_nIDGenerator = 0;
void print(Object* o) { cout << "Object id: " << o->getID() << endl; }
int main(int argc, char** argv) { list<Object*> ol;
for (int i=0; i<20; i++) { ol.push_back(new Object); }
for_each(ol.begin(), ol.end(), print);
return 0; }
Мои проекты: - Свободный и открытый клон World Of Goo - TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)
[GameMaker: Studio v1.4.9999]
|
|
| |
Matou | Дата: Воскресенье, 15 Декабря 2013, 01:50 | Сообщение # 1111 |
Исходный коТ
Сейчас нет на сайте
| В этом вашем С++ есть возможность объявить у класса два метода с одинаковой сигнатурой, но у одного будет спецификатор const, а у другого не будет
Код class Foo { void Bar() const; void Bar(); }
В каких таких случаях это может быть вообще полезным?
|
|
| |
GameMix | Дата: Воскресенье, 15 Декабря 2013, 11:39 | Сообщение # 1112 |
старожил
Сейчас нет на сайте
| Привет всем. Помогите разобраться с virtual-функциями-членами классов. Не понимаю суть virtual-функций, если такой кодКод class basic { public: void Func() {cout << "basic Func\n";}; };
class child : public basic { public: void Func() {cout << "child's Func\n";}; };
int main() { basic a; child b;
a.Func(); b.Func();
return 0; } Выдаёт результат:Код basic Func child's Func
Steel Standoff - 2D аркада. Мои статьи
|
|
| |
RUNGOGET2THECHOPAH | Дата: Воскресенье, 15 Декабря 2013, 13:19 | Сообщение # 1113 |
участник
Сейчас нет на сайте
| GameMix, в твоем примере не используются виртуальные методы.
|
|
| |
Izaron | Дата: Воскресенье, 15 Декабря 2013, 13:20 | Сообщение # 1114 |
Rammstein forever
Сейчас нет на сайте
| Rungo, смысл вопроса в том, что и с virtual, и без него, результат одинаковый
|
|
| |
Destroy | Дата: Воскресенье, 15 Декабря 2013, 13:40 | Сообщение # 1115 |
постоянный участник
Сейчас нет на сайте
| возник вопрос как преобразовать массив, например: 1 2 3 4 5 6 7 8 9 в массив 1 4 7 2 5 8 3 6 9 то есть пометь строки со столбцами
|
|
| |
stalker5889 | Дата: Воскресенье, 15 Декабря 2013, 13:48 | Сообщение # 1116 |
Свободный игродел
Сейчас нет на сайте
| GameMix, позднее связывание указывается при передаче обьекта функции. Например добавь в твой код функцию Код void fn(basic& obj) { obj.Func(); } И попробуй вызвать Добавлено (15.12.2013, 13:43) ---------------------------------------------
Цитата Destroy ( ) то есть пометь строки со столбцами Если вывод идёт через вложенный цикл то попробуй поменять циклы местами.Добавлено (15.12.2013, 13:48) --------------------------------------------- GameMix, Вот, скомпилируй код. Код #include <iostream> using namespace std; class basic { public: void Func() {cout << "basic Func\n";}; //что бы всё работало нормально добавь virtual перед void };
class child : public basic { public: void Func() {cout << "child's Func\n";}; }; void fn(basic& obj)//тут корень зла { obj.Func(); //к кому обращатся? basic или child } int main() { basic a; child b; //a.Func(); //b.Func(); fn(a); fn(b);//компилятор не может определить что b - подкласс. cin.get(); return 0; }
|
|
| |
GameMix | Дата: Воскресенье, 15 Декабря 2013, 14:12 | Сообщение # 1117 |
старожил
Сейчас нет на сайте
| stalker5889, скомпилировал. Разницу вижу. Странный C++ какой-то - там Func child'а работает, тут не работает...
Steel Standoff - 2D аркада. Мои статьи
|
|
| |
stalker5889 | Дата: Воскресенье, 15 Декабря 2013, 14:22 | Сообщение # 1118 |
Свободный игродел
Сейчас нет на сайте
| Цитата GameMix ( ) Странный C++ какой-то - там Func child'а работает, тут не работает... По умолчанию C++ не может определить будет вызываться basic или child, так как явно написано: void fn(basic& obj) что подразумевает использование класса basic. Это раннее связывание которое требует меньше ресурсов и оставлено по умолчанию для совместимости с Си. Слово virtual заставляет осуществить позднее связывание то есть подставить в аргумент нужный класс (basic или child) динамически во время выполнения.
|
|
| |
Destroy | Дата: Воскресенье, 15 Декабря 2013, 14:46 | Сообщение # 1119 |
постоянный участник
Сейчас нет на сайте
| stalker5889, спасибо еще можешь помочь вот смотри дана граница значений, если в строке массива все числа принадлежат этой границе то записать это в другой массив, вот например: дана граница 0..5 массив 123 456 789 результат 123
|
|
| |
stalker5889 | Дата: Воскресенье, 15 Декабря 2013, 15:00 | Сообщение # 1120 |
Свободный игродел
Сейчас нет на сайте
| Destroy, проверяй построчно и проверяй если хоть одна цифра выходит за границу интервала от 0 до 5 то перейти к следующей строчке иначе занести эту строку в массив.
|
|
| |