Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.10.2012, 23:23   #11
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

Juggernout

V. Использование указателей обязательно при создании довольно объёмной программы? (Как я понимаю, можно тут и без них в принципе) Можете привести словесные примеры, где указатели ну просто необходимы?

Указатели позволяют работать с динамическими обьектами и структурами данных (деревья, списки), а также контролировать время жизни объектов. И это только малая чать их возможного применения.

VI. Можно ли сделать так, чтобы работать с объектами класса в виде списка, в том смысле, что например сделать функцию добавления нового объекта, затем ф-ю обработки всех объектов и при необходимости в обработке их удалять, а не делать объекты-массивы и возиться с индексами? (В Blitz 3D с этим гораздо проще, или я чего-то не знаю..)

конечно можно.
для этого C++ предоставляет ряд удобных контейнеров и алгоритмов для работы с ними. Кроме того, существует десятилетиями наработанные практики под общим названием паттерны проектирования.
Например при необходимости "обработки всех объектов" можно воспользоваться паттерном Visitor.

VII. Стоит ли качать полностью Visual Studio 2012 или только его часть С++, и возможно ли это?

Есть Express версия, там только C++
А вообще при инсталляции полного пакета выбираешь, какие компоненты следует установить.

VIII. Где качать библиотеки DirectX 9 именно для С++ и как их "пристраивать" к нему?
IX. Как DirectX работает с моделями? Может ли он использовать 3D модели 3D-Max, или Autodesc Inventor, к примеру?


для DirectX нужно качать DirectX SDK
или сразу Windows SDK 8.0 - теперь оно включает в себя и directx

DX работает со своим дорматом (*.x) но в сети полно куча экспортеров их макса и конвертеров
некоторые из них прямо в комплекте с DX SDK
Rififi вне форума Ответить с цитированием
Старый 03.10.2012, 00:20   #12
Juggernout
Пользователь
 
Аватар для Juggernout
 
Регистрация: 01.10.2012
Сообщений: 23
По умолчанию

И опять же, спасибо, Rififi.
Насчет VII и IX пункта ты разъяснил.
V же пока остается недовыясненным - можно ли при написании серьезной программы обойтись без указателей? Если нет, пример, почему?
И особенно мне сейчас важен VI пункт. Я НИГДЕ не могу найти примера конкретной задачи работы со списком объектов нужного класса. А теория в данном случае - пустой звон. Зачем объяснять, на каком транспортном средстве ехать, когда нужна дорога)
Juggernout вне форума Ответить с цитированием
Старый 03.10.2012, 00:59   #13
Juggernout
Пользователь
 
Аватар для Juggernout
 
Регистрация: 01.10.2012
Сообщений: 23
По умолчанию

VI пункт решён)
Почему-то нигде не было сказано (где я смотрел), что чтобы сделать список объектов моего класса, нужно сначала сделать объект класса, задать ему необходимые параметры а потом только закидывать в список. Вот исправленный код:
Код:
#include <iostream>
    #include <conio.h>
    #include <cmath>
    #include <cstdlib>
    #include <string>
    //#include "C:\Program Files\Microsoft DirectX SDK (June 2010)\Lib\x86\"
    //#include "C:\Program Files\Microsoft DirectX SDK (June 2010)\Include\"
    #include <assert.h>
    #include <list>

    using namespace std;

    class spisokclass
    {
    public:
            string name;
            int age;
    };

    int main()
    {
            list<spisokclass> spisok;
            spisokclass data;
            data.name="Evgenii";
            data.age=26;
            spisok.push_back(data);
            data.name="Anton";
            data.age=21;
            spisok.push_back(data);
            cout << spisok.size() << endl;
            for(list <spisokclass> :: iterator it = spisok.begin(); it != spisok.end(); it ++)
            {
                    cout << it->name << " " << it->age << endl;
            }

            return 0;
    }
Я уверен, кому-то может пригодиться такой исходник, наглядно демонстрирующий работу в С++ со списками.
Важный момент:
X. Собственно, что DirectX работает с полигонами, я понял, и что нужен под него движок, тоже. Начитался про Ogre, многие хвалят, однако некоторые говорят что он довольно тяжелый (но одновременно и мощный). Скачал, но как его пристроить к моему проекту - не имею смысла. И стоит ли его вообще изучать? Или что-нибудь есть попроще (так, на будущее, мало ли)?

Последний раз редактировалось Juggernout; 03.10.2012 в 01:39.
Juggernout вне форума Ответить с цитированием
Старый 03.10.2012, 09:21   #14
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

Може стоит сначала язык подучить? Тогда многие вопросы "как" отпадут сами собой...
waleri вне форума Ответить с цитированием
Старый 03.10.2012, 16:45   #15
Juggernout
Пользователь
 
Аватар для Juggernout
 
Регистрация: 01.10.2012
Сообщений: 23
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Може стоит сначала язык подучить? Тогда многие вопросы "как" отпадут сами собой...
Waleri, ты мне советуешь по средствам прочтения инструкции "Как сделать машину" устроиться на работу в компании, где их продают. Несоответствие.
Да я и так его подучил. Однако вопрос не отпал. Нигде не найду, как цеплять движок Ogre к IDE, компилятору. Облазил я этот ogre3d.org, ниче так и не нашел, работаю на MSVS C++. Может, кто подскажет?

Последний раз редактировалось Juggernout; 03.10.2012 в 17:21.
Juggernout вне форума Ответить с цитированием
Старый 03.10.2012, 16:51   #16
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Да я и так его подучил. Однако вопрос не отпал. Нигде не найду, как цеплять движок Ogre к IDE, компилятору. Облазил я этот ogre3d.org, ниче так и не нашел, работаю на MSVS C++. Может, кто подскажет?
как и любая другая библиотека, прописывается путь к инклюдам и либам, инклюдится нужное, в списке либ указывается нужные(настройки линкера или прагмой)

вы видимо вообще не сталкивались с ситуацией подключения чего либо не стандартного.
+ на сайте есть либы под 2008 и 2010 студии.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 03.10.2012, 17:19   #17
Juggernout
Пользователь
 
Аватар для Juggernout
 
Регистрация: 01.10.2012
Сообщений: 23
По умолчанию

Спасибо, Пепел Феникса! После Blitz 3D просто очень непривычно - там закидываешь библиотеку в папку lib компилятора - и всё).
Juggernout вне форума Ответить с цитированием
Старый 03.10.2012, 17:34   #18
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

Цитата:
Сообщение от Juggernout Посмотреть сообщение
Спасибо, Пепел Феникса! После Blitz 3D просто очень непривычно - там закидываешь библиотеку в папку lib компилятора - и всё).
Здесь можно сделать так же, просто лучше добавить в проект, чем в систему. Например, что будем делать в Blitz если для двух проектов понадобятся *две* версии одной и той же библиотеки?
waleri вне форума Ответить с цитированием
Старый 03.10.2012, 19:21   #19
Juggernout
Пользователь
 
Аватар для Juggernout
 
Регистрация: 01.10.2012
Сообщений: 23
По умолчанию

Спасибо, Waleri!
Juggernout вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программирование игр и головоломок Jill73 Помощь студентам 0 17.05.2012 19:11
Программирование игр и головоломок Олеся Ю Паскаль, Turbo Pascal, PascalABC.NET 33 10.05.2012 20:26
XNA программирование игр на C# sergeybr Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 30.06.2010 13:52