>> 연산자를 오버로드하여 배열의 요소를 회전하려고합니다. 배열 선언을 제거하고 코드를 줄이기 위해 초기화를 제거했습니다. 그러나 컴파일러는 "정의되지 않은 유형 '클래스 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();
}
적절한 방법 필요 ; A = ABC (...); '기본 ctor와 대입 연산자가 필요합니다. – dyp
''n '을'연산자''안에서 수정하지 않으므로이 루프'while (n)'은 전혀 실행되지 않거나 무한히 실행됩니다. – dyp