|
우선 소스 부터 올리면..
#include<iostream>
using namespace std;
const int MAX=10;
class quick{
int data[MAX];
public:
void show();
void input();
void sort(int data[],int n);
};
void quick::show(){
cout<<"\n---- data ----\n";
for(int i=0;i<MAX;i++)
cout<<data[i]<<" ";
}
void quick::input(){
for(int i=0;i<MAX;i++)
{
cout<<"input "<<i+1<<" sd data :";
cin>>data[i];
}
}
void quick::sort(int data[],int n){
int v,t;
int i,j;
if(n>1)
{
v=data[n-1] ;
i=-1;
j=n-1;
while(1)
{
while(data[++i]<v)
while(data[--j]>v)
if (i>j) break;
t=data[i];
data[i]=data[j];
data[j]=t;
}
t=data[i];
data[i]=data[n-1];
data[n-1]=t;
sort(data,i);
sort(data+i,n-i-1);
}
}
int main(){
quick no1;
no1.input();
no1.show();
no1.sort(data,MAX);
no1.show();
return 0;
}
이런데요... 당연한 이야기이겠지만... 컴파일시 애러가 납니다. 애러가 나는 부분은
no1.sort(data,MAX) 이부분에서 애러가 나는데요.. data 배열이 클래스 내에 정의가 되 있고
main() 함수에는 없기때문에 data 가 정의 되지 않았다는 애러가 나옵니다.
그래서 c++ 에서 매서드 함수를 이용하여 재귀함수를 어떻게 사용해야하는지 잘 모르겠습니다.
꼭 도움 부탁드립니다.
|