Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка при вызове метода. 
V
    Опции темы
try_to_get
  Дата 19.3.2007, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 426
Регистрация: 19.3.2007
Где: Россия

Репутация: нет
Всего: 2



Не могу понять в чем ошибка.



Это файл с классом МНОГОУГОЛЬНИК

Код


//polygonclass.h

class polygon{
   unsigned int tops;
   int *xt;
   int *yt;
   int color;
public:
   void ixy();
   void oxy();
   void editsize();
   void lenline();
   void move();
   void editcolor();
   void ocolor();
   void draw();
   polygon(){
     tops = 4;
     xt = new int[tops];
     yt = new int[tops];
     for(int i=0; i<tops; ++i){
       xt[i] = 0;
       yt[i] = 0;
     }
     color = 5;
   }
   ~polygon(){
     delete []xt;
     delete []yt;
   }
};




Методы и прочии реализации.



Код


//functions.h

#include "polygonclass.h"
#include <graphics.h>
#include <iostream.h>
#include <string.h>
#include <conio.h>
void prus(unsigned char *line){
  int len = strlen(line);
  unsigned int i;
  char c = ' ';
  for(int k = 0; k < len; ++k){
    i = *(line+k);
    if((i>=192)&&(i<=239)){
      i-=64;
    }
    if((i>=240)&&(i<=255)){
      i-=16;
    }
    c=i;
    cout << c;
  }
}
void outmenu(){
  clrscr();
  prus("Программа, демонстрирующая методы класса МНОГОУГОЛЬНИК");
  cout << '\n';
  cout << '\n';
  prus("            * М Е Н Ю *");
  cout << '\n';
  cout << '\n';
  prus("  1>Ввести координаты.");
  cout << '\n';
  prus("  2>Вывести координаты.");
  cout << '\n';
  prus("  3>Изменить размер.");
  cout << '\n';
  prus("  4>Вычислить длины сторон.");
  cout << '\n';
  prus("  5>Переместить многоугольник.");
  cout << '\n';
  prus("  6>Изменить цвет многоугольника.");
  cout << '\n';
  prus("  7>Получить цвет многоугольника.");
  cout << '\n';
  prus("  8>Нарисовать многоугольник.");
  cout << '\n';
  prus("  9>Выход из программы.");
  cout << '\n';
  cout << '\n';
  prus("Введите номер действия ");
}
void polygon::ixy(){
  clrscr();
  prus("Введите координаты вершин.");
  for(int i=0; i<tops; ++i){
    cout << '\n';
    cout << "X(" << i << ") ";
    cin >> xt[i];
    cout << "Y(" << i << ") ";
    cin >> yt[i];
  }
}
void polygon::oxy(){
  clrscr();
  prus("Вывод координат аершин многоугольника.");
  for(int i=0; i<tops; ++i){
    cout << '\n';
    cout << "X(" << i << ")=" << xt[i];
    cout << ", Y(" << i << ")=" << yt[i];
  }
}
void polygon::editsize(){
  ;
}
void polygon::lenline(){
  ;
}
void polygon::move(){
  clrscr();
  prus("Введите значение, на которое будет сдвигаться многоугольник.");
  cout << "\n\n";
  prus("По X ");

  cout << '\n';
  prus("По Y ");
}
void polygon::editcolor(){
  clrscr();

}
void polygon::ocolor(){
  ;
}
void polygon::draw(){
  int dg=DETECT, dm;
  initgraph(&dg, &dm, "C:\\bc5\\bgi");
  for(int x=0,y; x<tops;++x){
    y=x;
    if(tops-x==1){y=-1;}
    line(xt[x],yt[x],xt[y+1],yt[y+1]);
  }
  getch();
  closegraph();
}




Главный файл.



Код


//main.cpp

#include "functions.h"
void main(){
   polygon P();
   int nmenu;
   do{
     outmenu();
     cin >> nmenu;
     switch(nmenu){
      case 1:{
        P.ixy(); /*ОШИБКА*/
        break;}
      case 2:{
        //P.oxy();
        break;}
      case 3:{
        //P.editsize();
        break;}
      case 4:{
        //P.lenline();
        break;}
      case 5:{
        //P.move();
        break;}
      case 6:{
        //P.editcolor();
        break;}
      case 7:{
        //P.ocolor();
        break;}
      case 8:{
        //P.draw();
        break;}
      case 9:{
        break;}
     }
   }while(nmenu!=9);
}




Выводит ошибку main.cpp(10,15)Structure required on left side of . or .*

Даже пробовал пустой метод вызывать все равно!

Если кто знает в чем ошибка, подскажите как исправить.



--------------------
Алгоритм не роскошь, а средство достижения цели!
user posted image
PM MAIL   Вверх
Daevaorn
Дата 19.3.2007, 23:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

Репутация: 51
Всего: 70



Цитата(try_to_get @  20.3.2007,  00:20 Найти цитируемый пост)
Если кто знает в чем ошибка, подскажите как исправить.

у тебя не объявлена переменная с именем Р, методы которой ты пытаешься вызывать.
PM MAIL WWW   Вверх
Бонифаций
Дата 20.3.2007, 00:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 827
Регистрация: 15.9.2005
Где: Brisbane

Репутация: 1
Всего: 40



У тебя должно быть

polygon P;

А у тебя 

polygon P();

В результате вместо создания обьекта P ты описал функцию P() возвращающую polygon; 


--------------------
 Бонифаций.
 
PM MAIL ICQ Skype GTalk Jabber YIM   Вверх
try_to_get
Дата 20.3.2007, 07:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 426
Регистрация: 19.3.2007
Где: Россия

Репутация: нет
Всего: 2



Огромное СПАСИБО! 


--------------------
Алгоритм не роскошь, а средство достижения цели!
user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.2305 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.