在参数化构造函数中将数组作为参数传递

Passing array as argument in Parameterized Constructor

本文关键字:数组 参数传递 参数 构造函数      更新时间:2023-10-16

我正在尝试重载>>运算符以旋转数组中的元素。我已经删除了数组声明和初始化以缩短代码。但是编译器给出的错误是"无效使用未定义的类型'类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("%dt",iarr[i]);
          printf("n");
          for(int i=0;i<n3;i++)
              printf("%dt",carr[i]);
      }
};
main()
{
    ABC A;
    A=ABC(arr,car,n,n1);
    A.display();
}

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

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