Форум программистов CodeGuru
23 Июль 2018, 06:09:53 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: ошибка при реализации меню  (Прочитано 17034 раз)
0 Пользователей и 1 Гость смотрят эту тему.
IRINA555
Новичок
*
Офлайн Офлайн

Сообщений: 6


Просмотр профиля
« : 18 Декабрь 2010, 12:39:30 »

Всем привет !
Необходимо организовать меню для этой программы,а у меня при выводе функции выдаёт ошибку...

Код:

#include <stdio.h>
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
class vector
{
        private:
        int *mas;   //  массив 
        int low;        // нижняя граница
        int high;     // верхняя граница
        public:
        vector();                         //   конструктор
        vector(int low, int high);                  //     конструктор с настройкой границ
        ~vector();                          //  деструктор
        int Add(vector *v);     //   сложить 2 вектора
        int Sub(vector *v);    //âû÷åñòü 2 âåêòîðà
        void Mul(int k);          // óìíîæèòü âåêòîð íà ÷èñëî
        void Div(int k);                // ïîäåëèòü âåêòîð íà ÷èñëî
        int &operator[](int k);              // îáðàùåíèå ê ýëåìåíòó âåêòîðà
        void VyvodElem(int index);    //âûâîä îäíîãî ýëåìåíòà
        void VyvodVector(void);   //âûâîä âñåãî âåêòîðà
};
vector::vector()
{        low= 0;
        high= 100;
        mas= (int*)malloc((high-low+1)*4);
}
vector::vector(int low, int high)
{
        this->low= low;
        this->high= high;
        mas= (int*)malloc((high-low+1)*4);
}
vector::~vector()
{
        free(mas);
}
int vector::Add(vector *v)
{
        if ((low==v->low)&&(high==v->high))
        {
                for (int i=0; i<=high-low; i++)
                mas[i]+= v->mas[i];
                return 0;
        }
        return 1;
}
void vector::Mul(int k)
{
        for (int i=0; i<=high-low; i++)
                mas[i]*= k;
}
void vector::Div(int k)
{
        for (int i=0; i<=high-low; i++)
                mas[i]/= k;
}
int vector::Sub(vector *v)
{
        if ((low==v->low)&&(high==v->high))
        {
                for (int i=low; i<=high; i++)
                mas[i]-= v->mas[i];
                return 0;
        }
        return 1;
}
int &vector::operator[](int index)
{
        if ((index>=low)&&(index<=high))
        {
                return mas[index-low];
        }
        throw "error";
}
void vector::VyvodElem(int index)
{
        if ((index>=low)&&(index<=high))
        {
                printf("%d", mas[index-low]);
        }
        else
        printf("Worng index");
}
void vector::VyvodVector(void)
{
        for (int i=0; i<=high-low; i++)
                printf("%d ", mas[i]);
        printf("\n");
}

void main()
{
        vector v(10, 20);

        for(int i=10; i<=20; i++)
                v[i]= i;

        v.VyvodVector();
        v.Mul(10);
        v.VyvodVector();
        v.Div(5);
        v.VyvodVector();

       // здесь начинается меню............

       int n;

        cout<<"MENU:"<<endl;
        cout<<"0-exit"<<endl;
        cout<<"1-slogit 2 vectora"<<endl;
        cout<<"2-vichest 2 vectora"<<endl;
        cout<<"3-ymnogit vector na chislo"<<endl;
        cout<<"4-delit vector na chislo"<<endl;
        cout<<"5-vivod odnogo elementa "<<endl;
        cout<<"6-vivod vsego elementa"<<endl;
        cin>>n;

         for(int i=0;i<100;i++)
       if(n==1)
      {
      cout<<Add();   // [b]сложение 2 векторов....здесь выдаёт ошибку...[/b]
      }

         if(n==0)
     {
      exit(1);
      }
        getch();
}
//-------------------------------

Записан
Valery
Пользователь
***
Офлайн Офлайн

Сообщений: 83


Просмотр профиля
« Ответ #1 : 18 Декабрь 2010, 13:25:09 »

обявление функции члена
int vector::Add(vector *v)
Вызов функции не члена
cout<<Add();
она у тебя не объявлена
даже если ты вызовешь функцию член то будет ошибка
нет обязательного параметра

cout<<Add();   // сложение 2 векторов....здесь выдаёт ошибку...
где здесь два вектора???
 С уважением Валерий
Записан
IRINA555
Новичок
*
Офлайн Офлайн

Сообщений: 6


Просмотр профиля
« Ответ #2 : 18 Декабрь 2010, 13:58:37 »

а если я сделаю так
cout<<vector(v);
то выодится ошибка связанная с ostream...
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Valid XHTML 1.0! Valid CSS!