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

ООП + полиморфизм = wtf? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Сортировка динамических структур методом шелла http://www.cyberforum.ru/cpp-beginners/thread345904.html
Дайте пример сортировки динамических структур методом шелла...
C++ Степень двойки Изучаю программирование. Попытался решить известную задачу. Программа компилируется, но если ввести к примеру 8 она выдает "no". В чем я ошибся? #include<iostream> using namespace std; int main() { int n,k; int flag=false; cout<<"enter a number "; cin>>n; http://www.cyberforum.ru/cpp-beginners/thread345890.html
C++ Вывод массива.
Программа работает, но код... запутаться можно. Есть ли способы попроще? Заранее спасибо. #include <iostream> #include <ctime> using namespace std; int main () { int mass={2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
C++ friend не видит приватные поля
Всем привет. Возникла проблема. Есть такой header #include <windows.h> #include <windowsx.h> class Intercept; class Dot { private: FLOAT X,Y,Z;
C++ Помогите с компилятором http://www.cyberforum.ru/cpp-beginners/thread345857.html
Вечер добрый... Помогите советом. Не могу скопилировать программу. Использую для этого Dev C++. Когда пробую компилировать, выходит куча ошибок. Мол не найдены такие то сякие библиотеки и так далее.. Как можно решить эту проблему? Может использовать какой нибудь другой компилятор? Чем пользуются профессионалы?
C++ Описание двух "пересекающихся" классов Как сделать два класса в которых методы используют параметры с типами друг-друга class c1 { public: int param; int method(c2 param); }; class c2 { public: int param; int method(c1 param) { return param.param; } подробнее

Показать сообщение отдельно
BAIZOR
0 / 0 / 0
Регистрация: 30.10.2010
Сообщений: 68
27.08.2011, 20:29  [ТС]     ООП + полиморфизм = wtf?
Цитата Сообщение от Сыроежка Посмотреть сообщение
this declaration has no storage class or type specifier

=(....

Добавлено через 52 секунды
Цитата Сообщение от grizlik78 Посмотреть сообщение
Слово abstract зачем?
убрал - 'D3D_UI' : cannot instantiate abstract class

Добавлено через 37 секунд
опять же, вопрос, разве ничего больше не надо для абстрактного класса?

Добавлено через 29 секунд
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
class D3D_UI
{
protected:
    UINT                        status;
    LPDIRECT3DTEXTURE9          sleep,activ,down;
    LPDIRECT3DVERTEXBUFFER9     g_pVB;
    bool                        enable;
    time_t                      timer;
    bool                        (*function)(Robotino3D*);
 
public:
    D3DRectangle                Rectangle;
    bool                        Down;
 
    D3D_UI(){status=0;}
    D3D_UI(LPDIRECT3DDEVICE9 &pd3dDevice,
                                        LPCWSTR sleep_,
                                        LPCWSTR activ_,
                                        LPCWSTR down_, 
                                        float x1, 
                                        float y1, 
                                        float z1, 
                                        float x2,
                                        float y2,
                                        float z2,
                                        float z3,
                                        float z4)
    {
        UpdateObject(pd3dDevice, sleep_, activ_, down_, x1, y1, z1, x2, y2, z2, z3, z4);
    }
 
    static void TransformCoords(LPDIRECT3DDEVICE9 &pd3dDevice, 
                                D3DCamera &Camera, 
                                D3DXMATRIX &Transform, 
                                D3DXVECTOR3 &pos, 
                                D3DXVECTOR3 &dir, 
                                int x, 
                                int y)
    {
        float                       px,
                                    py;
 
        D3DVIEWPORT9                ViewPort;
        D3DXMATRIX                  MatrixProjection;
 
        pd3dDevice->GetViewport     (&ViewPort);
        pd3dDevice->GetTransform    (D3DTS_PROJECTION, &MatrixProjection);
 
        px      =   ((( 2.0f*(float)x) / (float)ViewPort.Width)  - 1.0f) / MatrixProjection._11;
        py      =   (((-2.0f*(float)y) / (float)ViewPort.Height) + 1.0f) / MatrixProjection._22;
 
        pos.x   =   Camera.CamPos.x; 
        pos.y   =   Camera.CamPos.y; 
        pos.z   =   Camera.CamPos.z;
  
        dir.x   =   px; 
        dir.y   =   py; 
        dir.z   =   1.0;
 
        D3DXVec3TransformCoord( 
          &pos, 
          &pos, 
          &Transform 
        ); 
  
        D3DXVec3TransformNormal( 
          &dir, 
          &dir, 
          &Transform 
        );
    }
    virtual void setStatus(LPVOID Object,int newstatus) = 0;
 
    bool Select(D3DXVECTOR3 &pos, D3DXVECTOR3 &dir)
    {
        float               Distance    =   2000.0f;
 
        CUSTOMVERTEX        *buffer     =   Rectangle.init();
 
        bool                Result_1    =   false,
                            Result_2    =   false;
 
        Result_1    =    D3DXIntersectTri   (   &D3DXVECTOR3(buffer[0].x, buffer[0].y, buffer[0].z), 
                                                &D3DXVECTOR3(buffer[1].x, buffer[1].y, buffer[1].z),
                                                &D3DXVECTOR3(buffer[2].x, buffer[2].y, buffer[2].z),
                                                &pos,
                                                &dir,
                                                0,
                                                0,
                                                &Distance);
 
        Result_2    =    D3DXIntersectTri   (   &D3DXVECTOR3(buffer[3].x, buffer[3].y, buffer[3].z), 
                                                &D3DXVECTOR3(buffer[4].x, buffer[4].y, buffer[4].z),
                                                &D3DXVECTOR3(buffer[5].x, buffer[5].y, buffer[5].z),
                                                &pos,
                                                &dir,
                                                0,
                                                0,
                                                &Distance);
 
        return Result_1 || Result_2;
    }
    void SetTimer(UINT t_size)
    {
        timer   =   clock() + t_size;
    }
    void UpdateObject(LPDIRECT3DDEVICE9 &pd3dDevice, 
                                        LPCWSTR sleep_,
                                        LPCWSTR activ_,
                                        LPCWSTR down_, 
                                        float x1, 
                                        float y1, 
                                        float z1, 
                                        float x2,
                                        float y2,
                                        float z2,
                                        float z3,
                                        float z4)
    {
        Down        = false;
        status      = 0;
        g_pVB       =   NULL;
        sleep       =   NULL;
        activ       =   NULL;
        down        =   NULL;
        D3DXCreateTextureFromFile(pd3dDevice,sleep_, &sleep);
        D3DXCreateTextureFromFile(pd3dDevice,activ_, &activ);
        D3DXCreateTextureFromFile(pd3dDevice,down_ , &down);
        Rectangle   = *new D3DRectangle(x1, y1, z1, x2, y2, z2, z3, z4);
    }
 
    LPDIRECT3DTEXTURE9 getTexture()
    {
        if(status == 0) return sleep;
        if(status == 1) return activ;
        if(status == 2) return down;
    }
    virtual bool Render(LPDIRECT3DDEVICE9 &pd3dDevice)
    {
        pd3dDevice->SetFVF              ( D3DFVF_CUSTOMVERTEX );
        pd3dDevice->SetStreamSource     ( 0, g_pVB, 0, sizeof(CUSTOMVERTEX));
 
        if(FAILED(pd3dDevice->SetTexture    (0, getTexture())))             return false;
        if(FAILED(pd3dDevice->DrawPrimitive (D3DPT_TRIANGLELIST, 0, 2)))    return false;
 
        return true;
    }
};
 
Текущее время: 22:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru