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();
}
的正確方法使用非默認的構造函數是'ABC A(ARR,卡爾,N,N 1)構建一個元素;'如果你寫的'農行A ; A = ABC(...);''你需要一個默認的ctor和一個賦值操作符。 – dyp
你不會修改'operator'裏面的'n',所以while(n)'這個循環根本不會運行或者無限運行。 – dyp