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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.05.2012, 18:13   #1
MuradS60
Пользователь
 
Регистрация: 15.11.2010
Сообщений: 15
По умолчанию Тема ЗАКРЫТА. Как обратиться к методам элементов vector'а

Добрый день !!!
Некорректное обращение к методу элементов vector'а.
Мне нужно: Когда я двигаю фигуру клавишами (w,a,s,d) я прежде стираю старую и рисую новую с новыми координатами (ну эт понятно ) но когда у меня несколько фигур (прямоугольников) текущая фигура при движении будет затирать уже созданные до этого фигуры, поэтому я добавляю их в вектор и пытаюсь каждый раз при движении новой фигуры вызывать метод от рисовки для каждой уже созданной до этого фигуры находящейся в vector'е.

Когда использовал простой массив все было хорошо, в цикле для каждого i-того объекта вызывал нужный метод.
borland c++ 5.02
PHP код:
#include <iostream.h>
#include <graphics.h>
#include <conio.h>
#include <alloc.h>
#include <stdlib.h>
#include <vector.h>
#include <math.h>
class REC;
class 
FAS
{
    
int xFyFxF2yF2colorF;
    public:
        
FAS (int _xFint _yFint _xF2int _yF2,int _colorF)
        {
            
xF _xF;
            
yF _yF;
            
xF2 _xF2;
            
yF2 _yF2;
            
colorF _colorF;
        }
    
void FAS_set (){
        
setfillstyle(1colorF);
        
bar (xFyFxF2yF2);
    }
    
friend REC;
};

//***************************************************************************************//


class REC {
    
int x1y1x2y2colorp90;
    public:
        
REC(int _x1=150int _y1=100int _x2=250int _y2=150int _color=4int _p90=0){
            
x1 _x1;
            
x2 _x2;
            
y1 _y1;
            
y2 _y2;
            
p90 _p90;
            
color _color;
        }
        
void paintclear(int aFAS ob);
        
void moveLR90(FAS ob);
        
void rcol(FAS ob);
        
friend class FAS;
        
void ll (int lFAS ob);
        
void rr (int rFAS ob);
        
void uu (int uFAS ob);
        
void dd (int dFAS ob);
};
void main () {

int gdriver DETECTgmodeerrorcoderectang_cout=0circl_cout=0fountain_cout=0q;
initgraph (&gdriver, &gmode,"C:\BC5\BGI");
errorcode graphresult();
if (
errorcode != grOkcout <<"Error videodriver";

int FAS_x2FAS_y2FAS_color;
cout << "Dlina: "cin >> FAS_x2;
cout << "Shirina: "cin >> FAS_y2;
cout << "Cvet: "cin >> FAS_color;
clrscr();
std::vector <RECrec;
std::vector <ELPcir;
std::vector <FANfou;

setbkcolor(0);
FAS f(1505FAS_x2FAS_y2FAS_color);
f.FAS_set();
int kCircl_k ,Rectan_kFountain_kK=-1K1=-1K2=-1;
setfillstyle(10);
bar(51100100);
settextstyle (0,0,1);
outtextxy(1,1,"1-Pool");
outtextxy(1,17,"2-Flower");
outtextxy(1,33,"3-Fountain");
int a=0;
REC *rectang;
    do{
                        
Rectan_k getch() ;
                        switch (
Rectan_k) {
                     case 
110:{cout << rec.size();
                  
rectang = new REC;
                              
rec.push_back(*rectang);}
                     break;
                     case 
97: {rectang->ll(5f);
                              for(
std::vector<REC>::iterator it rec.begin(); it rec.end(); it++)it->ll(5,f);
                             }
                  break;
                     case 
100: {rectang->rr(5f);for(std::vector<REC>::iterator it rec.begin(); it rec.end(); it++)it->paintclear(1,f); }

                  break;
                        case 
119: {rectang->uu(5f);for(std::vector<REC>::iterator it rec.begin(); it rec.end(); it++)it->paintclear(1,f);}
                        break;
                     case 
115: {rectang->dd(5f);for(std::vector<REC>::iterator it rec.begin(); it rec.end(); it++)it->paintclear(1,f); }
                                  
                  break;
                  case 
113:{ rectang->moveLR90(f);
                  for(
std::vector<REC>::iterator it rec.begin(); it rec.end(); it++)it->paintclear(1,f); }
                                   
                  break;
                     }
                    } while (
Rectan_k != 27);
closegraph();


Последний раз редактировалось MuradS60; 06.05.2012 в 18:46. Причина: Тема ЗАКРЫТА
MuradS60 вне форума Ответить с цитированием
Старый 06.05.2012, 18:45   #2
MuradS60
Пользователь
 
Регистрация: 15.11.2010
Сообщений: 15
По умолчанию

ВСЕ НАШЕЛ ДРУГОЙ ВЫХОД
MuradS60 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
CSS: как обратиться к элементу? Fenex HTML и CSS 1 02.03.2012 15:01
Как обратиться к контролу на листе? Maryver Microsoft Office Excel 1 22.04.2011 18:47
Как обращаться к методам и свойствам формы avd Общие вопросы Delphi 6 28.01.2011 08:18
Как обратиться к ячейке? baddog БД в Delphi 2 30.04.2010 15:43
Как получить доступ к свойствам и методам запущеного браузера? loma Общие вопросы .NET 0 08.07.2008 05:23