0

我正在尝试重载 >> 运算符以旋转数组中的元素。我已删除数组声明和初始化以缩短代码。但是编译器给出的错误是“无效使用未定义类型'class 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();
}
4

1 回答 1

2

您的错误“无效使用未定义类型'class ABC' ”是因为您的默认构造函数。你已经声明了一个默认构造函数,但你还没有定义它。

而不是ABC();你需要至少做ABC() {}

于 2013-10-08T10:38:47.783 回答