Передача массива в качестве аргумента в параметризованный конструктор

0

Я пытаюсь перегрузить оператор >>, чтобы повернуть элементы в массиве. Я удалил объявление массива и инициализацию для сокращения кода. Но компилятор сообщает об ошибке как "недопустимое использование класса неопределенного типа ABC". и многое другое.

#include<iostream>
using namespace std;
class ABC
{
      int iarr[10],n2,n3;
      char carr[10];

      Public:
             ABC();
      ABC(int arr[],char car[],int n,int n1)
      {
              n2=n; n3=n1;
              for(int i=0;i<n;i++)
              iarr[i]=arr[i];
              for(int i=0;i<n1;i++)
                      carr[i]=car[i];
      }

      ABC operator>>(int n)
      {
          while(n)
          {
                  int temp;
                  temp=iarr[n2-1];
                  for(int i=n2-1;i>=0;i--)
                  {
                      iarr[i]=iarr[i-1];
                  }
                  iarr[0]=temp;
          }
      }

      void display()
      {
          for(int i=0;i<n2;i++)
              printf("%d\t",iarr[i]);
          printf("\n");
          for(int i=0;i<n3;i++)
              printf("%d\t",carr[i]);
      }
};

main()
{
    ABC A;
    A=ABC(arr,car,n,n1);
    A.display();
}
Теги:
arrays
constructor

1 ответ

2

Ваша ошибка " недопустимое использование класса неопределенного типа ABC " из-за вашего конструктора по умолчанию. Вы объявили конструктор по умолчанию, но вы его не определили.

Вместо ABC(); вам нужно по крайней мере сделать ABC() {}

  • 0
    Потратив около 45 минут ... тьфу !!. 'P' не должно быть заглавной в 'Public'. Но компилятор не выдавал за это никакой ошибки. Остальной код верен, кроме 'n--' в цикле while.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню