在Parameterized Constructor中将数组作为参数传递

时间:2013-10-08 10:06:37

标签: c++ arrays constructor

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

1 个答案:

答案 0 :(得分:2)

您的错误“无效使用未定义类型'类ABC'”是因为您的默认构造函数。您已声明了默认构造函数,但尚未定义它。

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